Wie weiß Python, dass ein Codeblock in einer Schleife ist?

8

Wie bestimmt Python in Schleifen, welche Anweisungen zur Schleife gehören?

Zum Beispiel kann man in C schreiben:

%Vor%

Aber im Python-Code unten

%Vor%

meine Absicht ist, dass statement2 außerhalb der Schleife ist.

Wie wird Python das Ende dieses Blocks identifizieren? Mit TAB-Leerzeichen?

Ich bin verwirrt, was passiert, besonders wenn es verschachtelte Schleifen gibt.

    
Veerendra 24.08.2015, 06:57
quelle

2 Antworten

7

Dies geschieht in der Tat durch Einrückung. In Ihrem Beispiel befindet sich statement 1 in der for-Schleife, statement 2 nicht. Sie können Leerzeichen und Tabulatoren als Einrückung verwenden, sofern Sie dasselbe überall im Code verwenden.

Ein Beispiel für eine verschachtelte for-Schleife:

%Vor%

print j erfolgt in der J-for-Schleife. print i wird in der i-for-Schleife ausgeführt. Done! wird am Ende nur einmal gedruckt.

    
Mathias711 24.08.2015, 06:59
quelle
3

Python identifiziert Blöcke mit Einrückung, alle Anweisungen in einem bestimmten Block müssen auf der gleichen Ebene eingerückt sein, obwohl Sie eine beliebige Einrückung verwenden können, aber alle Anweisungen in einem bestimmten Block müssen die gleiche Einrückungsebene haben. In Ihrem Beispiel befindet sich also Statement 2 tatsächlich außerhalb der for-Schleife auf der gleichen Ebene der Einrückung und befindet sich daher im selben Block wie die for-Schleife.

Eine wichtige Sache zu beachten, obwohl es erlaubt ist, verschiedene Ebenen der Einrückung für verschiedene Blöcke zu verwenden (einschließlich Mischen von Tabulatoren und Leerzeichen, sollten Sie das nicht tun, und Sie sollten immer die gleiche Menge an Einrückung verwenden) Wenn Sie einen Block als 4 Leerzeichen vom vorherigen Block einrücken, sollten Sie idealerweise immer so einrücken.

PEP-0008 (Der Style Guide für Python) schlägt vor, 4 Leerzeichen als Einzug zu verwenden.

    
Anand S Kumar 24.08.2015 07:00
quelle

Tags und Links