Úvod do Pythonových vnorených slučiek

Vitajte v ďalšej kapitole výučbového kurzu Python - Vnorené slučky. Vnorené slučky sa osvedčili v každom programovacom jazyku. Dnes sa zameriame konkrétne na Python - typy, syntax a príklady. Začnime teda.

Vnorené slučky

Bolo by dobré krátko sa dotknúť bázy na vnorených slučkách všeobecne, predtým, ako budete konkrétne postupovať s Pythonom. Ak vo vnútri tela inej slučky existuje slučka, nazýva sa vnorená slučka. To znamená, že chceme kód vnútornej slučky spustiť viackrát. Vonkajšia slučka riadi, koľko iterácií bude vnútorná slučka podstúpiť. Základným príkladom vnoreného cyklu je:

for (i=0; i<10; i++)
(
for (j=0; j<10; j++)
(
//This code will execute 100 times.
)
//This code will execute 10 times.
)

Tu je potrebné poznamenať, že akýkoľvek druh slučky môže byť vnorený do inej slučky. Napríklad slučka while sa môže vnoriť do slučky for for alebo naopak.

Python vnorené slučky

1) Vnorené pre slučkovú syntax

Základná syntax vnorenej slučky v Pythone je:

for (iterating_variable_1) in (sequence_1): #Outer Loop
for (iterating_variable_2) in (iterating_variable_1/sequence_2): #Inner Loop
(code to execute)

príklad

for i in range(11): #line 1
for j in range(i): #line 2
print('*', end='') #line 3
print('') #line 4

Výkon:

Vykonávací tok

Skúsme pochopiť postup vykonávania vyššie uvedeného programu. V programe sme použili dve iteračné premenné i a j na tlačenie vzoru hviezd.

Kompilátor začína riadkom 1. Narazí na funkciu for loop a range. Funkcia rozsahu v Pythone vydá iterovateľné pole celých čísel od 0 do čísla špecifikovaného v argumente. Číslo argumentu je vylúčené zo súboru. V našom prípade vygeneruje pole (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Teraz kompilátor vie, že musí vykonať nasledujúcu množinu príkazov 10-krát.

Keď sa presunie na riadok 2, stretne sa s ďalšou funkciou slučky a rozsahu. Všimnite si, že argument pre túto funkciu rozsahu je vypočítaná hodnota našej iteračnej premennej i. Dynamicky tak generuje pole v závislosti od hodnoty i. Keď i = 0, pole je prázdne. Keď i = 1, pole je (0). Keď i = 2, pole je (0, 1) atď.

Počet vykonaní riadku 3 teda priamo závisí od hodnoty i. Všimnite si end end = '' inline 3. Tým sa zabráni Pythonu, aby vytlačil riadok po každej hviezde. Chceme iba posun na konci každej iterácie vonkajšej slučky. Preto sme v riadku 4 nášho kódu výslovne vytlačili riadok.

Teraz teda podrobne preskúmajme každú iteráciu našej vnorenej slučky.

Iterácia vonkajšej slučky 1

I = 0, j = (), output is a blank line.

Iterácia vonkajšej slučky 2

I = 1, j = (0), output = *

Iterácia vonkajšej slučky 3

I = 2, j = (0, 1), output = **

Iterácia vonkajšej slučky 4

I = 3, j = (0, 1, 2), output = ***

,
,
,

Iterácia vonkajšej slučky 10

I = 9, j = (0, 1, 2, 3, 4, 5, 6, 7, 8), output = *********

Iterácia vonkajšej slučky 11

I = 10, j = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), output = **********

2) Vnorené do slučky

syntax

Syntax pre vnorenie while loop v Pythone je:

while (expression_1): #Outer loop
(code to execute) #Optional
while (expression_2): #Inner loop
(code to execute)

Na rozdiel od slučky for, slučka while nemá predkompilovanú iterovateľnú sekvenciu. Kým slučka stále vykonáva kód, kým sa výraz nevyhodnotí ako pravdivý. Preto musí vývojár vždy pamätať na aktualizáciu iteračnej premennej / výrazu, inak smyčka vstúpi do režimu nekonečného vykonávania.

príklad

i=1 #line 1
while(i<=5): #line 2
j=5 #line 3
while(j>=i): #line 4
print(j, end=' ') #line 5
j-=1 #line 6
i+=1 #line 7
print() #line 8

Výkon:

Vykonávací tok

Riadok 1 kódu nastavuje iteračnú premennú vonkajšej slučky na počiatočnú hodnotu. Ďalší riadok je začiatok vonkajšej slučky while. Má výraz i <= 5. Po každom opakovaní sa tento výraz vyhodnotí na skutočnú hodnotu. Vykonanie vstúpi do slučky iba vtedy, ak je podmienka splnená. Len čo sa stav stane nepravdivým, slučka sa ukončí.

Pretože počiatočná hodnota I je 1, podmienka v riadku 2 je splnená. Takže kompilátor prejde na riadok 3 a nastaví iteračnú premennú j našej vnútornej slučky j na 5. Riadok 4 má opäť slučku while s výrazom, ktorý sa vyhodnocuje ako true. Takže kompilátor vykoná riadok 5 a 6. Potom sa presunie späť na riadok 4 a vyhodnotí stav. Ak je podmienka pravdivá, opäť vstúpi do riadkov 5 a 6. Ak sa podmienka stane nepravdivou, slučka sa ukončí a ďalšie riadky, ktoré sa majú vykonať, sú riadky 7 a 8. To isté sa dodržiava pre vonkajšiu slučku.

Riadky 6 a 7 sú veľmi dôležité, pretože aktualizujú našu iteračnú premennú. Bez nich by programový tok vstúpil do nekonečného režimu vykonávania, pretože výrazy slučky while by vždy vyústili do pravdivosti.

Mal by som sa zlomiť, pokračovať alebo prejsť

Rovnako ako takmer všetky ostatné programovacie jazyky, aj Python má koncept prerušenia a pokračovania. Tieto kľúčové slová pomáhajú ukončiť ľubovoľnú slučku alebo preskočiť konkrétnu iteráciu slučky. Python má tiež ďalšie kľúčové slovo - pass. Pozrime sa na ne.

1) Prestávka

Kľúčové slovo break označuje, že kompilátor vyskočí zo slučky a ukončí jej vykonanie.

príklad

for i in range(5):
for j in range(5):
if i == j:
break
print(j, end='')
print('')

Výkon:

Vyššie uvedený program preruší vnútorný cyklus, ak sú hodnoty I a j rovnaké. Nevykonáva ďalšie iterácie slučky. Tomu je možné ďalej porozumieť pomocou vyhlásenia o pokračovaní.

2) Pokračujte

Kľúčové slovo Pokračovať označuje, že kompilátor preskočí aktuálnu iteráciu slučky a pokračuje ďalšou iteráciou.

príklad

for i in range(5):
for j in range(5):
if i == j:
continue
print(j, end='')
print('')

Výkon:

Všimnite si, že ten istý program, ale s príkazom pokračovať namiesto prerušenia, neukončí vykonanie slučky. Preskočí iba aktuálnu iteráciu.

3) Prejdi

Kľúčové slovo „pass“ je v Pythone zaujímavé. Znamená to jednoducho nerobiť nič. Používa sa, keď je blok kódu potrebný syntakticky, ale nechcete vykonať žiadny príkaz. Jednoducho funguje ako zástupný symbol.

príklad

for i in range(5):
for j in range(5):
if i == j:
#I am not sure what to do when i equals j, so for now I will pass.
pass
print(j, end='')
print('')

Výkon:

záver

Slučky sú strategicky veľmi dôležité naučiť sa vykonávať úlohu s minimálnymi riadkami kódu. Toto je iba základný úvod do slučiek. Odporúča sa viac si zahrať, byť kreatívny a preskúmať potenciál slučiek ďalej.

Odporúčané články

Toto je sprievodca po Python Nested Loops. Tu diskutujeme pythonové vnorené slučky so syntaxou, príkladmi, výstupom a vykonávacím tokom. Viac informácií nájdete aj v nasledujúcom článku -

  1. Python Frameworks
  2. Ako nainštalovať Python
  3. Sprievodca po slučkách v Pythone
  4. Čo je rozhranie Java?
  5. Rôzne typy slučiek s jej výhodami
  6. Slučky vo VBScript s príkladmi

Kategórie: