Introduzione ai loop nidificati Python

Benvenuti in un altro capitolo del corso di apprendimento su Python - Nested Loops. Un ottimo modo per eseguire il loop di un loop, i loop nidificati hanno dimostrato il loro valore in ogni linguaggio di programmazione. Oggi ci concentreremo su Python in particolare: i tipi, la sintassi e gli esempi. Quindi iniziamo.

Cicli annidati

Sarebbe bene toccare brevemente i Nested Loops in generale, prima di procedere specificamente con Python. Se esiste un loop all'interno del corpo di un altro loop, viene definito loop nidificato. Ciò significa che vogliamo eseguire il codice del ciclo interno più volte. Il loop esterno controlla quante iterazioni subiranno il loop interno. Un esempio di base di un ciclo nidificato per è:

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

Una cosa da notare qui è che qualsiasi tipo di loop può essere nidificato all'interno di un altro loop. Ad esempio, un ciclo while può essere nidificato all'interno di un ciclo for o viceversa.

Cicli annidati Python

1) Nidificato per sintassi del loop

La sintassi di base di un loop nidificato in Python è:

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

Esempio

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

Produzione:

Flusso di esecuzione

Proviamo a capire il flusso di esecuzione del programma sopra. Nel programma, abbiamo usato due variabili di iterazione iej per stampare un modello di stelle.

Il compilatore inizia con la riga 1. Incontra un ciclo for e una funzione range. La funzione range in Python genera un array iterabile di numeri interi da 0 al numero specificato nell'argomento. Il numero dell'argomento è escluso dall'array. Nel nostro caso, genererà un array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Ora, il compilatore sa che deve eseguire il prossimo set di istruzioni 10 volte.

Quando si sposta sulla linea 2, ne incontra un'altra per la funzione loop e range. Si noti che l'argomento di questa funzione di intervallo è un valore calcolato della nostra variabile di iterazione i. Quindi, genera dinamicamente un array in base al valore di i. Quando i = 0, l'array è vuoto. Quando i = 1, l'array è (0). Quando i = 2, l'array è (0, 1) e così via.

Quindi, il numero di volte in cui la riga 3 viene eseguita dipende direttamente dal valore di i. Notare la parte fine = '' in linea 3. Questo per impedire a Python di stampare un avanzamento riga dopo ogni stella. Vogliamo solo un avanzamento di riga alla fine di ogni iterazione del ciclo esterno. Pertanto, abbiamo esplicitamente stampato un avanzamento riga nella riga 4 del nostro codice.

Quindi ora esaminiamo attentamente ogni iterazione del nostro ciclo nidificato.

Iterazione dell'anello esterno 1

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

Iterazione dell'anello esterno 2

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

Iterazione dell'anello esterno 3

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

Iterazione dell'anello esterno 4

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

.
.
.

Iterazione dell'anello esterno 10

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

Iterazione dell'anello esterno 11

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

2) Loop annidato

Sintassi

La sintassi per il nesting while loop in Python è:

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

A differenza del ciclo for, il ciclo while non ha una sequenza iterabile precompilata. Mentre il ciclo continua a eseguire il codice fino a quando l'espressione non diventa vera. Quindi, uno sviluppatore deve sempre tenere a mente di aggiornare la variabile / espressione iterante, altrimenti il ​​ciclo entrerà in modalità di esecuzione infinita.

Esempio

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

Produzione:

Flusso di esecuzione

La riga 1 del codice imposta la variabile iterante del ciclo esterno sul valore iniziale. La riga successiva è l'inizio del ciclo while esterno. Ha un'espressione i <= 5. Questa espressione viene valutata per il valore reale dopo ogni iterazione. L'esecuzione entra nel ciclo solo se la condizione è vera. Non appena la condizione diventa falsa, il ciclo viene terminato.

Poiché il valore iniziale di I è 1, la condizione nella riga 2 è vera. Quindi, il compilatore si sposta sulla riga 3 e imposta la variabile iterante del nostro ciclo interno su 5. La riga 4 ha di nuovo un ciclo while con un'espressione che viene valutata vera. Quindi, il compilatore esegue le righe 5 e 6. Torna quindi alla riga 4 e valuta la condizione. Se la condizione è vera, entra nuovamente nelle righe 5 e 6. Se la condizione diventa falsa, il loop viene terminato e le righe successive da eseguire sono le righe 7 e 8. Lo stesso viene seguito per il loop esterno.

Le righe 6 e 7 sono molto importanti in quanto aggiornano la nostra variabile iterante. Senza di essi, il flusso del programma entrerebbe nella modalità di esecuzione infinita poiché le espressioni del ciclo while si tradurrebbero sempre in verità.

Devo rompere, continuare o passare

Come con quasi tutti gli altri linguaggi di programmazione, anche Python ha il concetto di "break and continue". Queste parole chiave aiutano a terminare qualsiasi ciclo o saltare una particolare iterazione del ciclo. Python ha anche un'altra parola chiave: pass. Diamo un'occhiata a questi.

1) Pausa

La parola chiave break indica al compilatore di saltare fuori da un loop e terminare la sua esecuzione.

Esempio

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

Produzione:

Il programma sopra interrompe il ciclo interno per se il valore di I e j sono uguali. Non esegue ulteriori iterazioni del loop. Questo può essere ulteriormente compreso con l'istruzione continue.

2) Continua

La parola chiave continue indica al compilatore di saltare l'iterazione corrente del ciclo e continuare con l'iterazione successiva.

Esempio

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

Produzione:

Si noti che lo stesso programma, ma con l'istruzione continue anziché break, non termina l'esecuzione del ciclo. Salta solo l'iterazione corrente.

3) Pass

La parola chiave pass è interessante in Python. Significa semplicemente non fare nulla. Viene utilizzato quando il blocco di codice è necessario sintatticamente, ma non si desidera eseguire alcun comando. Agisce semplicemente come segnaposto.

Esempio

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

Produzione:

Conclusione

I cicli sono strategicamente molto importanti per imparare a svolgere un'attività con linee di codice minime. Questa è solo un'introduzione di base ai loop. Si consiglia di giocare di più, diventare creativi ed esplorare ulteriormente il potenziale dei loop.

Articoli consigliati

Questa è una guida ai loop annidati Python. Qui discutiamo i loop annidati di Python con la sintassi, gli esempi, il flusso di output e di esecuzione. Puoi anche leggere il seguente articolo per saperne di più -

  1. Python Frameworks
  2. Come installare Python
  3. Guida ai loop in Python
  4. Cos'è l'interfaccia Java?
  5. Diversi tipi di loop con i suoi vantaggi
  6. Loop in VBScript con esempi

Categoria: