Programování v Pythonu
Programování v Pythonu (5/21) · 5:19

While cykly v Pythonu Ukázka, že while cyklus může dělat totéž co cyklus for.

V tomhle videu vám chci ukázat, že "for" cykly nejsou jediný typ cyklů, i když jsou pravděpodobně nejčastější. Mohli byste použít taky něco jako "while" cyklus (while = dokud), a možá, že "while" cyklus by mohl být intuitivnější, alespoň v Pythonu - můžete si vybrat. Takže napíšu ten samý program. Bude dělat úplně totéž, ale místo "for" cyklu použiju "while" cyklus. Začnu s tím, že "do proměnné sum přiřaď nulu", ale taky hned provedu "do proměnné i přiřaď nulu". Takže "while" cyklus nebude sám automaticky nastavovat hodnoty "i", a nebude je sám automaticky měnit. Musím si to zařídit sám, ručně, a chci, aby se "i" chovalo přesně stejně jako ve "for" cyklu. Nechám svůj starý kód tady dole, abyste ho mohli porovnat s novým, ale potom ho smažu, protože nechci, aby se totéž provádělo dvakrát. Takže nastavím "i" na nulu. Kdo jste zvědaví, možná si pamatujete, posledně bylo "i" platnou proměnnou jenom uvnitř "for" cyklu. Teď ho definuji mimo tělo cyklu, takže ve skutečnosti je to běžná proměnná. Definuji ho na nejvyšší úrovni, nikoliv uvnitř funkce, takže je to globální proměnná a může být použita kdekoliv v programu. Tak, a tady pojďme zapsat "while" cyklus. Takže budu opakovaně provádět tělo cyklu, a budu to dělat dokud ("while") bude "i" menší než deset. Vzpomeňte si: chceme to opakovat pro "i" rovno nule, jedné, dvěma, třem, čtyřem, pěti, šesti, sedmi, osmi, devíti: všemu až po, nikoliv včetně, deset (od nuly do devíti). Takže dokud je "i" menší než deset, prováděj to, co napíšu do těla cyklu. Jakmile "i" nebude menší než deset, tedy v tomhle případě jakmile bude "i" rovno deseti, přestaň s opakováním. Takže se to bude chovat přesně stejně jako tohle tady, a co teď udělám je, že řeknu, "do sum přiřaď součet sum a i", a pak vytiskni "sum". Takže je to přesně stejná logika jakou jsme měli ve "for" cyklu, ale přidám sem ještě jeden řádek navíc, pokud nachci, aby tohle běželo navěky, protože tady ve "for" cyklu si vzpomeňte: pokaždé, když provedeme tělo cyklu, když opouštíme tělo, "for" cyklus dosadí do proměnné "i" další prvek tohoto seznamu. Tady jsme nedefinovali, jak se má "i" měnit, takže co musíme udělat: při každém opakování, musíme zvýšit hodnotu "i" o jedna. Takže bychom mohli říct "do i přiřaď i plus jedna". Chci, abyste teď opravdu přemýšleli o otm, jak oba tyhle zápisy dělají totéž. "i" začalo na nule, dřív, než jsme vůbec do cyklu vstoupili, a "sum" začalo na nule v obou případech. Tady je v obou totéž, přiřazení "sum zvětši o i", a a tady zase totéž, tisk "sum" na výstup. Teď tady, jakmile projdu tělem cyklu, v případě "for" cyklu, tady se do "i" přiřadí další prvek seznamu, což je číslo jedna. Tady není nic, co by něco podobného zapříčinilo, takže musíme sami říct: "i" bude to co předtím, čili nula, a o jedna vyšší. Obě varianty jsou ekvivalentní, protože každý prvek tohohle seznamu "rozsah do deseti", tím, jak jsme ho definovali, každý prvek je jednoduše o jedna vyšší, než jeho předchůdce. Takže místo toho můžeme říct, že "i" má být o jedna víc než minule, a to by mělo vést přesně ke stejnému výsledku. Ve skutečnosti, pokud se tohohle kódu chci zbavit, pokud ho tam chci mít k nahlédnutí v budoucnu, ale nechci aby ho interpret Pythonu spouštěl, mohl bych ho tzv. zakomentovat, a komentování se dělá připsáním hash-kříže sem. Takže ten hash tam doslova říká, "Hele, interpretře, všechno tohle tady až do konce řádku prostě ignoruj." Komentování se může hodit když máte nějaký kód, který zrovna nechcete nechat provádět,, ale možná se bude hodit v budoucnu. Komentování se taky hodí, když chcete člověku, který si zdrojový kód čte, vysvětlit, co ten kód vlastně dělá (odtud "komentování"). Například, mohli byste sem vepsat malý komentář, který říká, "Tenhle cyklus počítá součet čísel od nuly do devíti," "včetně devíti." Takže kdyby se k tomu někdo později vrátil, místo aby musel vymýšlet, co zdrojový kód znamená, mohl by si přečíst váš komentář a říct "Aha, tahle část kódu právě tady počítá součet od nuly do devíti," a mohl by říct "a umístí ho..." Takže když použijete tenhle hash, zakomentujete daný řádek. Takže pokud chci jít na další řádek, musím použít další hash. "... a umístí ho do proměnné 'sum'." A pak lidé ví, "Wow, já vím, co to dělá, a vím taky, že když je vše hotovo, součet bude uložen zde, do proměnné 'sum'." Každopádně, pojďme spustit ten program. Chci ukázat, že program ignoruje tyto věci a když napíšete tento text bez hashe na začátku, počítač, interpret, řekne "Co to je? Tohle není kód v Pythonu," ale je to užitečné pro někoho jiného, kdo to bude číst, a kdo taky bude ignorovat tohle dole. Takže ... ... teď to uložíme. Uložíme to a spustíme. A vrátí to přestě ty samé výsledky, které jsme dostali předtím. Takže, tohle jsou výsledky co jsme dostali předtim (možná si pamatujete): 0,1,3,6,10,a vše ostatní do 45 A teď spustím tohle, předpokládám, že jsem nenapsal žádný bug ... ... a dostanu přesně to samé. takže tenhle cyklus "while" dělá tu samou věc. Ale dělá to lehce ... trochu jasněji definuje "i" (proměnná přes kterou se iteruje). Zabare vám to trochu víc psaní, ale jinak je to naprosto stejné chování.
video