Bevezetés a Python beágyazott hurkokba

Üdvözöljük a Python tanfolyam egy másik fejezetében - a Nested Loops. A hurok hurkolásának nagyszerű módja, a beágyazott hurkok minden programozási nyelven bebizonyították, hogy érdemesek. Ma konkrétan a Pythonra összpontosítunk - a típusokra, a szintaxisra és a példákra. Tehát kezdjük el.

Beágyazott hurkok

Jó lenne röviden megérinteni a beágyazott hurkokat általában, mielőtt kifejezetten folytatnák a Python-ot. Ha egy hurok létezik egy másik hurok testében, akkor azt beágyazott huroknak nevezzük. Ez azt jelenti, hogy a belső hurok kódját többször is végrehajtani akarjuk. A külső hurok szabályozza, hogy a belső hurok hány iterációt hajt végre. Beágyazott hurok alapvető példája a következő:

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

Itt érdemes megjegyezni, hogy bármilyen típusú hurok be lehet ágyazva egy másik hurokba. Például egy ideig tartó hurok beágyazható egy hurok belsejébe vagy fordítva.

Python beágyazott hurkok

1) Beágyazva a hurok szintaxisához

A Pythonba beágyazott hurok alapszintaxisa:

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

Példa

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

Kimenet:

Végrehajtási folyamat

Próbáljuk megérteni a fenti program végrehajtási folyamatát. A programban két i és j iterációs változót használtunk a csillagmintázat kinyomtatásához.

A fordító az 1. sorral kezdődik. Talál egy a for loop és a range függvényt. A Python tartományfüggvénye egy egész számok ismételhető tömbjét adja ki 0-tól az argumentumban megadott számig. Az argumentumszám ki van zárva a tömbből. Esetünkben tömböt generál (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10). A fordító tudja, hogy a következő utasításkészletet tízszer kell végrehajtania.

Amikor a 2. sorra mozog, újabb találkozik a hurok és a távolság funkcióval. Vegye figyelembe, hogy ennek a tartományfüggvénynek az argumentuma az i iterációs változó kiszámított értéke. Tehát dinamikusan tömböt generál az i értékétől függően. Ha i = 0, a tömb üres. Ha i = 1, a tömb (0). Ha i = 2, a tömb értéke (0, 1) és így tovább.

Tehát a 3. sor végrehajtásának száma közvetlenül az i értékétől függ. Vegye figyelembe, hogy a rész vége = '' 3-as vonal. Ez megakadályozza, hogy Python minden csillag után nyomtasson soros adagolást. Csak a külső hurok minden iterációjának végén vonalvezetést akarunk. Így kifejezetten kinyomtattuk a soros adagolást a kódunk 4. sorába.

Tehát most vizsgáljuk meg alaposan a hurokba beágyazott összes iterációját.

Külső hurok megismétlése 1

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

Külső hurok ismétlése 2

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

Külső hurok ismétlése 3

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

Külső hurok ismétlése 4

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

.
.
.

Külső hurok ismétlése 10

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

Külső hurok ismétlése 11

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

2) beágyazva, míg hurok

Szintaxis

A Python hurokba történő beágyazódásának szintaxisa:

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

A for huroktól eltérően, míg a while huroknak nincs előre összeállított megismételhető sorrendje. Miközben a hurok addig futtatja a kódot, amíg a kifejezés igazra nem kerül. Tehát a fejlesztõnek mindig szem előtt kell tartania az iteráló változó / kifejezés frissítését, különben a hurok végtelen végrehajtási módba lép.

Példa

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

Kimenet:

Végrehajtási folyamat

A kód 1. sora a külső hurok iteráló változóját kezdeti értékre állítja. A következő sor a külső, míg a hurok eleje. I = = 5 kifejezéssel rendelkezik. Ennek a kifejezésnek a valós értéke minden iteráció után ki van értékelve. A végrehajtás csak akkor lép be a hurokba, ha a feltétel igaz. Amint a feltétel hamis, a hurok megszakad.

Mivel az I kezdeti értéke 1, a 2. sorban szereplő feltétel igaz. Tehát a fordító a 3. sorra mozog, és a belső hurok j iteráló változóját 5-re állítja. A 4. sornak ismét van egy ideig tartó hurka egy kifejezéssel, amely igazra értékeli. Tehát a fordító végrehajtja az 5. és a 6. sort. Ezután visszatér a 4. sorra és kiértékeli a feltételt. Ha a feltétel igaz, akkor ismét bekerül az 5. és a 6. sorba. Ha a feltétel hamis, a hurkot megszakítják, és a következő végrehajtandó sorok a 7. és a 8. sor. Ugyanezt követi a külső hurok.

A 6. és a 7. sor nagyon fontos, mivel frissítik az iteráló változót. Nélkülük a programfolyamat végtelen végrehajtási módba lépne, mivel a loop-kifejezések mindig igazságot eredményeznek.

Ha el kellene szakadnom, folytatnom vagy átmennem

Mint szinte az összes többi programozási nyelvnél, a Python is rendelkezik a break és a folytatás fogalmával. Ezek a kulcsszavak segítenek bármilyen hurok lezárásában vagy a hurok egy adott iterációjának kihagyásában. A Pythonnak van egy másik kulcsszava is - a pass. Vessen egy pillantást ezekre.

1) Szünet

A szünet kulcsszó azt jelzi, hogy a fordító kiugrik egy hurokból és leállítja annak végrehajtását.

Példa

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

Kimenet:

A fenti program megszakítja a belső hurkot, ha I és j értéke azonos. A hurok további iterációit nem hajtja végre. Ez tovább érthető a folytatási nyilatkozattal.

2) Folytassa

A folytatódó kulcsszó azt jelzi, hogy a fordító kihagyja a hurok aktuális iterációját, és folytassa a következő iterációval.

Példa

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

Kimenet:

Vegye figyelembe, hogy ugyanaz a program, de a folytatás utasításával a szünet helyett, nem fejezi be a hurok végrehajtását. Csak kihagyja az aktuális iterációt.

3) Pass

A jelszó kulcsszó érdekes Pythonban. Ez egyszerűen azt jelenti, hogy semmit nem teszünk. Akkor használja, amikor a kódblokkra szintaktikailag szükség van, de nem akarja, hogy bármely parancs végrehajtásra kerüljön. Ez egyszerűen helyőrzőként működik.

Példa

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('')

Kimenet:

Következtetés

A hurkok stratégiai szempontból nagyon fontosak, ha meg akarjuk tanulni egy feladat elvégzését minimális kódsorral. Ez csak egy alapvető bevezetés a hurkokba. Ajánlott többet játszani, kreatívvá válni és tovább vizsgálni a hurok lehetőségeit.

Ajánlott cikkek

Ez egy útmutató a Python beágyazott hurkokhoz. Itt a Python beágyazott hurkokat tárgyaljuk a szintaxissal, példákkal, kimeneti és végrehajtási folyamattal. A következő cikkben további információkat is megnézhet -

  1. Python keretek
  2. Hogyan kell telepíteni a Python-ot
  3. Útmutató a hurkokhoz a Pythonban
  4. Mi a Java interfész?
  5. Különböző típusú hurkok és azok előnyei
  6. Hurkok a VBScript-ben példákkal

Kategória: