Programování v Pythonu
Programování v Pythonu (4/21) · 10:15

For cykly v Pythonu Úvod do cyklů: cyklus FOR

Teď, když víme něco málo o seznamech Rozhodl jsem se použít toto video jako úvod do cyklů, zde konkrétně cyklu for (pokud zbyde trocha času, můžeme probrat i ostatní druhy cyklů) Ale než se do toho pustíme, chtěl bych vám představit zabudovanou funkci v Pythonu, která se nazývá range() - zabudovaná funkce znamená že je již v Pythonu a můžete jí používat. A je to cesta, jak generovat listy - listy, které jsou složeny z celých čísel a rostou. Tedy, pro ukázku, pokud řadu šesti čísel [range(6)] vygeneruje to list od 0 do 5. Tak to je šest prvků, ale bez čísla 6 Pokud bych chtěl, aby list zahrnoval i šestku Musel bych udělat řadu sedmi čísel [range(7)]. Vygeneruje to 0 až 6, ale opět bez sedmičky ale dostanu tam tu šestku. Pokud chci mít 1 až 6: - nechci aby tam byla 0 Mohl bych udělat v řadu začínající od 1 a to včetně 1 až k 7, ale ta už tam nebude. Tak první položka bude v té řadě, poslední položka však zahrnuta nebude. A pak dostaneme – notak, dostaneme 1 2 3 4 5 6. A co je na tom super, na tomto integrovaném vývojovém prostředí, tomto I.D.E., PyScripter, který používám je, že když píšu název funkce, kterou zná vlastně mi řekne něco málo, o této funkci, v případě že to zapomenu. Tak nevím, pokud si můžete přečíst tohle, ale to říká, "rozsah ([start], stop, [krok])" Takže, pokud chcete, poznáte, kolik na int – Tak teď, je výchozí nastavení na hodnotu přírůstek 1 pokaždé. To říká, "Hele, řeknu vám zvýšit - různé - číslo!" Tak říkají vám umožní mít rozsah, Takže začnete na 0, budete chtít jít až do 8. A já chci jít až o 2 místo 1. Takže pak jsem šel [0, 2, 4, 6] a já – Jsem měl řekl to přesněji. Až ale ne včetně 8 – horní části oblasti, nechcete zahrnout jej. Tak to jde až do výše a to zvýší to 2, tak byste mohli udělat to takhle nebo možná budete chtít začít na 3 a chcete se jít až do ale ne včetně 31 a chcete jít nahoru kroky 3, tu máš. [?] až ale ne včetně 31. Takže to může generovat spoustu seznamů a důvod, proč je to užitečné je, že můžeme použít tyto uvnitř smyčky. A tak první typ smyčky Já jsem vám představil je smyčka "pro" Tak tohle je interpretem dolů, Zde budu skutečně napsat program. Takže tento program je opravdu jen ukázat vám Co znamená "pro" smyčky. Tak jsem mohl říct "pro jsem" a já je tato proměnná to se často používá v "pro" smyčky a iterativní smyčky a iterativní prostředky udržet něco dělat znovu a znovu. "pro jsem v" a dovolte mi udělat jeden jednoduchý, "v dosahu," a já jsem jen chtěl říct, 5, "range(5)" Takže to bude generovat seznam, [0, 1, 2, 3, 4], tak "i v range(5)" a tento dvojtečka říká, "Teď budeme mít sub-clause co dělat na každou z těchto iterací." Pojďme jen vytisknout co i je. A tak než jsme ani vidět, co to má udělat, Řekněme jen o tom přemýšlet. To říká, "po každém si projdeme tuto smyčku" "pro každou z věcí v oblasti" "jsem na ně odkazovat, aby" a pak bude každý z těchto smyček na odkaz na jinou, "a pak budete chtít vytisknout." Tak si prostě vyzkoušet to. Takže dovolte mi uložit tento program a nyní dovolte mi jej spustit. Tak tady máš. Co to je, že vytvořil smyčku, Takže pokaždé, když to jde do smyčky přiřadí i k jiným prvkem v tomto seznamu. Jak si pamatujete, tento seznam byl [0, 1, 2, 3, 4] (Řekl jsem 0,1,2,3,4,5 dříve? Ne, je to jen 0,1,2,3,4 – až do ale ne včetně 5.) Takže pokaždé, když procházíte smyčky, jsem prochází každou z těchto položek a právě tento program říká, "vytisknout že i." Takže první Jdeme do smyčky, jsem tak tiskne to [0] = 0. Pak to vytiskne 1, pak se to vytiskne 2, pak to vytiskne 3, pak to vytiskne 4 Tak to prostě pořád dál přes to, že mnohokrát. Když jsme řekli, že to byl "pro range(10):", teď Pojďme spustit tento program. Podívejme se, to bude tisknout... 1 až 9. To bude tisknout 1 až 9. Nebo bych měl říct, 0 až 9! Protože to je prvním prvkem v tomto seznamu. Ale dokážeš mnohem zajímavější věci. Řekněme, že jste chtěli vzít součet 0 až 9. Takže co byste mohli udělat, je definovat jiné proměnné zde. Takže než jsem dělat něco součet jen bude 0. A pak co Dalo by se říct, "pokaždé, když procházíte smyčky, proč ne..." "přidat SUMA, aby byl předchozí SUMA definovat Navíc to, co jsem v této části smyčky." A tak můžeme lze sledovat Pak chci vytisknout součet. A Podívejme se, co tahle věc má. Tak ji uložit a pak dovolte mi jej spustit. Tak tady máš. Poprvé jste prošli smyčky, součet 0 a já je 0, přidáte 'em dohromady vytiskne součet, a dostanete 0. Příště půjdete do smyčky, já je 1. Přidáme to na předchozí SUMA (0), tisknout, dostanete 1. Dalším průchodu smyčkou, já se teď bude 2. Přidáte, že předchozí součtu, 2 + 1, dostanete 3. Příště smyčkou, já je 3, přidat, že předchozí částka, dostanete 6. Součet všech čísel, 0 až 9, tedy 45. Tak právě to, že je trochu užitečný program. A prostě dělat věci trochu jasnější, Dovolte mi skutečně projít si to Na můj malý tabletu. Vložte můj kód, který jsem sepsal zde. A ať jen přemýšlet o tom, co to dělá. Takže máme několik proměnných zde. Můžeme začít s tato proměnná "sum", který je nastaven na hodnotu 0. Je tu dva způsoby vizualizace proměnných. Běžný způsob vizualizace (to není nutně špatně, Někdy je jednodušší způsob, jak přemýšlet o tom) je k nim jako vědra. Ale v Pythonu, skutečně správnou cestou (a jste viděl, že se seznamy) je zobrazit jako odkaz na něco Takže je-li si prohlédnout jako vědra řeknete, dobře, z get-go, v bloku "sum" je 0. Ale realita je taková, že proměnná "sum" je nyní na mysli číselný literál, skutečný počet 0, sedící v paměti někde. Teď jsme se vstoupit do smyčky "pro". A co smyčka říká, je Pojďme opakované přiřadit i každý z prvků v seznamu generovaný range(10) Tak Buďme jasné, Pokud říkáme, přímo tady, rozsah 10, to vygeneruje seznam, který vypadá takto: ... až do ale ne včetně 10, to je deset prvků přímo tady. A pak Jdeme do smyčky "pro". Tak poprvé projdeme pro smyčce... Já budu o tom přemýšlet dvěma různými způsoby. Tak já budu, 1.) Já budu o tom přemýšlet "lopaty" způsobem. Takže máme tuto proměnnou, to může ve skutečnosti použít pouze uvnitř tohoto ustanovení (budeme mluvit více o obor, nebo kde lze použít proměnnou, ale to jsem proměnných je pouze dobrý uvnitř této klauzule. Součet proměnná, jak byla definována Já ji použít kdekoli – mimo klauzuli nebo uvnitř klauzule, protože to byla definována mimo klauzuli.) Takže máte "i" Takže toto, pokud si to jako lopaty první iteraci je přiřazen k této první položky tady. Tak já se bude 0. Realita, lepší způsob, jak přemýšlet o tom, je, že jsem se skutečně odkazuje na tento první prvek Naše poprvé prostřednictvím smyčky. A pak projdeme smyčky, a říká "SUMA + i" No SUMA je 0 a já je 0, přidáte 'em dohromady, dostanete 0. Tak je SUMA se 0, nebo stále odkazující na hodnotu 0. A pak to vytiskne součet ven, tento řádek nad zde. Říká, "dobře, součet právě teď je jen 0," a to ji vytisknout. Pak to jde zpátky do opakovat a to říká, "Podívejte, jsou tam nějaké další prvky, které lze přiřadit i k?" Dobře že existují! Je všechny z nich, které musíme projít. Tak pak to dělá i na další prvek v pořadí, tak teď jsem se bude další prvek v pořadí, nebo jiným způsobem přemýšlet o tom, že je v "i" kbelík, Pokud chcete zobrazit je jako vědra, já je nyní nastaven na 1. A teď jsme se znovu spustit. A můžeme říci, "dobře, SUMA je 0, plus i. jsem je 1. Takže SUMA nyní bude odkazovat na 1." A když tisknete SUMA, nyní vytiskne 1. Pak, pro smyčka řeknou, "Jsou tam nějaké další prvky v tomto seznamu sem přiřadit i k?" Dobře že existují! Je všech těchto ostatních, tak Držme jít! Takže teď, mohou nyní být rovna (nebo se mohou vztahovat k) 2. Pokud si myslíte, že to jako lopaty, jsem tedy nyní 2, nebo si můžete říct, že jsem nyní odkazuje na 2 (a tady můžete ignorovat tyto práva). A projdeme smyčkou znovu; SUMA je nyní 1, 1 + já, já se teď 2; 1 + 2 je 3. Takže SUMA se nyní bude 3 Tato doba průchodu smyčkou. Takže SUMA je nyní odkazuje na 3, tisku částku, dostanete 3. A dál úplně, já se s odkazem na jak jsme se projít smyčkou cyklus bude dál Co je víc věcí, které mohou odkazovat na, že jsme si udržet zvětšování jsem Tyto jiné hodnoty nad zde. A nakonec, jsem bude 9, budeme hodnotit a smyčka říká, "Hej, je tam že něco zbylo v tomto seznamu, který může být?" A ty jsi jako "ne! Tam není že nic ponecháno v tomto seznamu!" A pak se cyklus bude třeba udělat, a my si rozbít k ní a program se zastaví. A to je přesně to, co jsme viděli, děje, když jsme spustili program tady.
video