Programování v Pythonu
Přihlásit se
Programování v Pythonu (8/21) · 9:24

Program na výpočet faktoriálu u čísla krok po kroku Uživatel zadá vstupní hodnotu a program vypočítá faktoriál zadaného čísla.

V tomto videu chci krok po kroku projít program z předešlého videa pro lepší pochopení co se děje, řádek po řádce. Získáte intuitivní pochopení pro "for" cykly a proměnné ukážeme si to na konkrétním příkladu vytvoříme příklad, kde uživatel zadává vstup. Pokud bude uživatel požádán o vstup, zadá číslo 3 To budeme předpokládat. Vybral jsem malé číslo, abychom nemuseli procházet cyklem ... příliš dlouho a toto video mělo rozumnou délku. Právě když uživatel zadá číslo 3, do proměnné se uloží číslo 3. Jsou dva způsoby, jak na to nahlížet. Když programuji v jakémkoli jazyce a přemýšlím nad proměnnými ... mám sklon vnímat proměnné jako kyblík. Takže mám kyblík nazvaný číslo a do tohoto kyblíku, když uživatel zadá 3, pokud uživatel zadá 3 vkládám 3. Python je poněkud jiný, než některé jazyky. Korektnější způsob (oba jsou intuitivní, pokud o se nad tím zamyslíte) nahlížení na proměnné v Pythonu je, že bereme proměnné jako odkaz na číslo 3. a říkám to proto, že pokud v Pythonu změníte proměnnou ... Řekněme, že přímo zde jsme napsali proměnná "number" je rovna 2. Ve skutečnosti, pokud přiřadíme proměnné číslo 2 Python ponechá 3 v pamětí a místo toho ukáže na číslo 2. Číslo 3 tedy nezaniká přiřazením čísla 2. 3 stále existuje a to bude důležité, když začneme dělat složitější věci s více efektní datovými typy Ale vraťme se zpět, pro účely tohoto programu můžete vnímat porměnné oběma způsoby. jako kyblík s číslem 3, nebo jako popisek, který odkazuje na číslo 3 někde v paměti počítače. a teď další věc, co se stane je, že máme jinou proměnnou nazvanou "product", a nastavíme "product" roven 1 použiji stejná přirovnání vytvořili jsme další kyblík nazvaný "product" a do tohoto kyblíku vkládáme číslo 1. nebo bychom mohli říct, že "product" je proměnná a její název odkazuje na číslo 1. Pak máme "for" cyklus a to je asi nejvíce matoucí část. máme "for i in range(number)" a proměnnou "number" doslova se interpret pát "jaké je číslo" a v tomto případě je číslo 3 takže toto bude vyhodnoceno jako rozsah 3 toto bude vyhodnocen jako "rozsah 3" v našem konkrétním příkladu a znovu, jak interpret věděl? Řekl: Najdi rozsah čísel "number" je proměnná, vyhledej proměnnou "number", OK, je tam 3. Takže dám 3 přímo zde. nebo, vyhledej proměnnou "number", ta ukazuje na číslo 3. Takže sem dám 3 a vezmu rozsah 3. a viděli jsme v posledním videu, že pokud vezmeme rozsah 3 rozsah 3 je roven posloupnosti čísel 0,1,2, takže vytváří posloupnost 3 čísel začínajících od 0 do 2 (3-1) a to co "for" cyklus dělá je, že pokaždé když jdeme skrz cyklus spustí se tento kód, který je uvnitř smyčky a my víme, že je to uvnitř "for" cyklu, protože jsme jej odsadili a nejpužívanější konvence v Pythonu je, že nepoužíváte tabelátor, stisknete mezerník 4-krát, a to řekne interpretru: "Vše na této úrovni odsazení se stane vždy, když jdeme do "for" cyklu." a když začneme "for" cyklus, proměnná "i" bude začínat na hodnotě 0. takže při prvník průběhu cyklu, "i" bude první prvek v pořadí, pak když jdeme znovu do cyklu "i" bude druhý prvek v pořadí a pak když jdeme do cyklu znovu, "i" bude třetí prvek v pořadí a pak jdeme do "for" cyklu a ono to zkusí přiřadit další prvek v řadě a řekne "Hej, počkej, už nejsou žádné další prvky v pořadí" a pak se přeruší "for" cyklus a pokračuje zbytek programu Zkusme tedy zapřemýšlet, co se stane pro konkrétní příklad, kde uživatel zadal číslo 3. Takže rozsah čísla se ohodnotí jako 0,1,2 tak to bude 0,1,2 a při prvním průchodu cyklu ... budu používat tuto konvenci tady ... při prvním průchodu smyčkou se bude "i" odkazovat na 0 nebo pokud použijeme tuto konvenci, při prvním průchodu cyklem bude "i" vnímáno jako kyblík, kterému je přiřazen první prvek rozsahu 3. první prvek v pořadí bude 0 a pak spustíme to, co je ve smyčce přiřadíme proměnné "product" něco nového a co je to nové? při prvním průběhu cyklu bude "i" = 0, 0+1 je 1, takže při prvním průchodu cyklem, toto bude 1 "product" je 1, toto je poprvé, co procházíme cyklem ... udělám to ve stené barvě "i" je 0+1, takže dostaneme 1, 1x1 je 1, takže proměnné "product" bude přiřazeno číslo 1 Takže proměnné "product" bude přiřazeno číslo 1 což vlastně nic nemění, protože už to je 1 takže to bylo 1, než jsme to vynásobili číslem 1 a přiřadili proměnné tak bych mohl přeskočit 1, to nebude 1 znovu, ale nechám to nebo můžeme jen říci, že bude znovu přiřazeno 1 nic se vlastně nezměnilo při prvním průchodu cyklem Ale teď se začnou dít zajímavé věci Takže teď se vrátíme na začátek cyklu, a teď "i" bude další prvek v cyklu, takže teď do "i" bude přiřazen další prvek v cyklu tedy teď "i" bude 1, to "for" cyklus dělá, vytváří z "i" každý prvek v posloupnosti, prochází jimi, a teď to spustíme znovu Teď vidíme proměnnou "product" násobenou "i" + 1 "product" je stále 1, "i" je nyní 1, takže 1+1 nyní bude 2 takže 1-krát 2 bude nová hodnota "product" Takže nový "product", byl 1, teď jsme to vynásobili číslem 2 a přiřadili znovu do "product", takže nový "product" nyní bude 2 Takže proměnná "product" je nyní 2 a opět projdeme cyklus tentokrát bude "i" další prvek "i" bude další prvek v pořadí přímo tady nebo bychom mohli říci, že "i" bude znovu přiřazeno na hodnotu 2, další prvek v pořadí, znovu spustíme půjdeme do cyklu, "product" je nyní 2, "i" je nyní 2 2+1 je 3, takže tento celý výraz tady je 3, máte tedy ... 2, "product" je teď 2-krát "i"+1, "i" je 2, takže "i"+1 je 3 Takže 2-krát 3 a to bude 6 Takže nový "product"-krát "i"+1 je nyní 6, takže toto teď bude 6 a teď se snažíme znovu spustit "for" cyklus, a ten řekne "Hej, nech mě přeřadit do "i" další položku v pořadí" pokusí se najít další položku v pořadí, ale to řekne "Počkej, neexistuje žádná další položka v pořadí," Takže jsme skončili provádění našeho "for" cyklu Takže nic nezůstane v našem posloupnosti, jsme hotovi s naším "for" cyklem Nyní můžeme vyskočit ven, a jdeme na další řádek v programu Další řádek v programu doslova říká "tisknout product" a v této části pouze chceme dostat hodnotu "product" na výstup a proměnná "product" je nyní číslo 6 proměnná "product" je nyní číslo 6 jednu věc jsem měl vlastně připomenout používal jsem přirovnání ke kyblíku, ale "product" zde ze začátku odkazuje na 1, pak je přiřazeno číslo 1, pak je ale přiřazeno na číslo 2, pak tedy odkaz směřoval na 2 a pak na 6 pak bylo přiřazeno 6, takže pokud bych měl být v souladu s tímto přirovnáním tady, pokaždé, když "product" odkazuje na jinou hodnotu, nebo může být vnímán jako kyblík v rámci tohoto programu, kde je proměnná znovu a znovu přiřazováná, a skvělé na tomje, že když jsme hotovi s tímto "for" cyklem, číslo, které sedí v kyblíku "prodcut", proměnná "product", nebo lze říci, číslo, na které proměnná "product" odkazuje, je faktoriál čísla, které uživatel vložil. je to faktoriál 3, a pokud si pamatujete, 3, symbol pro faktoriál je vykřičník ... je rovna 3x2x1.
video