2015-08-24 13 views
8

W pętlach, w jaki sposób Python decyduje, które instrukcje należą do pętli?W jaki sposób Python wie, że blok kodu jest w pętli?

Na przykład, w C, można napisać:

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

Ale w kodzie Pythona poniżej

for i in range(5): 
    statement1 
statement2 

moim zamiarem jest to, że statement2 jest z pętli.

W jaki sposób Python wskaże koniec tego bloku? Korzystając z przestrzeni TAB?

Jestem zdezorientowany co do tego, co się dzieje, szczególnie jeśli są zagnieżdżone pętle.

Odpowiedz

7

Jest to rzeczywiście zrobione przez wcięcie. Tak więc w twoim przykładzie, statement 1 jest w pętli for, statement 2 nie jest. Możesz używać spacji i tabulatorów jako wcięć, o ile używasz tego samego w całym kodzie.

Przykładem zagnieżdżonej pętli:

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

print j odbywa się w j-tej pętli for. print i odbywa się w pętli i-for-loop. Done! zostanie wydrukowany tylko raz, na końcu.

+0

Dziękuję Mathias! – Veerendra

+1

@Vereerera Uwaga: wcięcie nie ** nie ** oznacza, że ​​musi zawierać znaki tabulacji ('\ t'). Możesz użyć prostego spacji. W rzeczywistości najbardziej standardowym sposobem na wcięcie pythona jest użycie 4 białych znaków zamiast tabulacji (wystarczy skonfigurować edytor, aby wstawił 4 spacje po naciśnięciu znaku tabulacji). – Bakuriu

+0

@ Mathias711 Właśnie się o tym dowiedziałam –

3

Python identyfikuje bloki za pomocą wcięcia, wszystkie instrukcje w konkretnym bloku muszą być wcięte na tym samym poziomie, ale można użyć dowolnego wcięcia, ale wszystkie instrukcje w konkretnym bloku muszą mieć ten sam poziom wcięcia . Tak więc w twoim przykładzie, Statement 2 jest rzeczywiście poza pętlą for na tym samym poziomie wcięcia, dlatego znajduje się w tym samym bloku, co pętla for.

Jedna ważna rzecz do zapamiętania, nawet jeśli dozwolone jest stosowanie różnych poziomów wcięcia dla różnych bloków (w tym mieszanie zakładek i spacji, nie powinieneś tego robić, i powinieneś zawsze używać tej samej liczby wcięć w całym tekście), co oznacza, że ​​wciskasz jeden blok jako 4 spacje od poprzedniego bloku, powinieneś idealnie tak wciskać.

PEP-0008 (The style guide for Python) sugeruje użycie 4 spacji jako wcięć.

Powiązane problemy