für - else vs für elif

8

Ich dachte, dass elif: die Abkürzung für

war %Vor%

Es ist jedoch nicht möglich,

zu verwenden

für - elif:

nur

für - else: if:

in diesem Code:

%Vor%

Danke für die Antwort bis jetzt, meine Frage ist jetzt eher: ist das der Weg, es zu tun? Wenn eine Zeile keine (der bekannten) Datensätze enthält, möchte ich sie ausdrucken, wenn es sich um einen Datensatz handelt?

    
Viktor Mellgren 11.06.2012, 15:44
quelle

4 Antworten

11

elif: ist kein Makro, das zu else: if expandiert, es ist ein syntaktisches Element, das nur im Kontext eines if: -Anweisung . Normalerweise würde else: if einen neuen if -Block öffnen; elif: macht das jedoch nicht.

    
kindall 11.06.2012, 15:48
quelle
9

Die for else ist eine spezielle Fallverwendung, nicht die Gleich wie die Struktur if elif . elif macht sowieso keinen Sinn im Kontext von for , da die Bedeutung von for else "wenn wir die Schleife beendet haben, ohne zu brechen, mach das Ding". Das ist binäre Logik. elif macht im Kontext dieser binären Entscheidung keinen Sinn.

    
Silas Ray 11.06.2012 15:47
quelle
8

Richtig. Das gleiche gilt für else in try .. except .. else .

    
ecatmur 11.06.2012 15:47
quelle
4

Das 'else', auf das Sie verweisen, ist an den Befehl 'for' gebunden, nicht an den Befehl 'if'. 'elif' macht nur Sinn, wenn es mit einem 'if' Befehl verwendet wird.

Mit dem Befehl 'for' wird der Block 'else' nur dann ausgeführt, wenn der Block 'for' nicht vorzeitig durch einen Befehl 'break' beendet wird, siehe Absatz 4.4 .

    
uselpa 11.06.2012 15:50
quelle