2015-08-24 8 views
8

In loop, in che modo Python decide quali istruzioni appartengono al ciclo?Come fa Python a sapere che un blocco di codice è in un ciclo?

Ad esempio, in C, si può scrivere:

for(int i=0;i<=n;n++) 
{ // start of block 
     Statment1 
} // end of block 
Statement2 

Ma nel codice Python sotto

for i in range(5): 
    statement1 
statement2 

mia intenzione è che statement2 è fuori dal giro.

In che modo Python identificherà la fine di questo blocco? Utilizzando gli spazi TAB?

Sono confuso su cosa succede, specialmente se ci sono cicli annidati.

risposta

7

Questo è effettivamente fatto per indentazione. Quindi nel tuo esempio, statement 1 è nel ciclo for, statement 2 no. Puoi usare spazi e tab come rientri, purché tu stia usando la stessa cosa ovunque nel codice.

Un esempio di un annidato ciclo for:

for i in range(5): 
    for j in range(10): 
     print j 
    print i 
print 'Done!' 

print j avviene nella j-per-loop. print i viene eseguito in i-for-loop. Done! verrà stampato solo una volta, alla fine.

+0

Grazie Mathias! – Veerendra

+1

@Veerendra Nota: il rientro ** non ** significa che deve contenere i caratteri di tabulazione ('\ t'). Puoi usare un semplice spazio bianco. In effetti il ​​modo più classico per indentare python è di usare 4 spazi bianchi invece di una scheda (basta configurare il proprio editor per inserire 4 spazi quando si preme il carattere di tabulazione). – Bakuriu

+0

@ Mathias711 Ho appena saputo questo grazie –

3

Python identifica i blocchi utilizzando il rientro, tutte le istruzioni in un blocco particolare devono essere rientrate allo stesso livello, sebbene sia possibile utilizzare qualsiasi quantità di rientro, ma tutte le istruzioni in un blocco particolare devono avere lo stesso livello di indentazione . Quindi, nel tuo esempio, Statement 2 è effettivamente all'esterno del ciclo for nello stesso livello di rientro, quindi è nello stesso blocco del ciclo for.

Una cosa importante da notare, anche se è consentito utilizzare un diverso livello di indentazione per blocchi diversi, (compresi i tab e gli spazi di missaggio, non dovresti farlo, e dovresti sempre usare la stessa quantità di rientranza), nel senso che se indentri un blocco di 4 spazi rispetto al blocco precedente, dovresti idealmente rientrare in quel modo sempre.

PEP-0008 (The style guide for Python) suggerisce di utilizzare 4 spazi come indentazione.

Problemi correlati