Antworten:
Ja, sie machen ganz andere Dinge. pass
tut einfach nichts, während continue
mit der nächsten Schleifeniteration fortgefahren wird. In Ihrem Beispiel wird der Unterschied deutlich, wenn Sie nach if
: Folgendes hinzufügen : Nach der Ausführung pass
wird diese weitere Anweisung ausgeführt. Danach continue
würde es nicht.
>>> a = [0, 1, 2]
>>> for element in a:
... if not element:
... pass
... print element
...
0
1
2
>>> for element in a:
... if not element:
... continue
... print element
...
1
2
pass
Schlüsselwort nichts bewirkt, ist es nur nützlich, wenn Sie syntaktisch eine eingerückte Suite benötigen, aber nichts tun möchten. Ein häufiges Beispiel ist, wenn Sie eine Ausnahme ignorieren möchten, die Sie verwenden except SomeException: pass
. Es gibt auch viele andere Anwendungsfälle. Sie würden dafür nicht unbedingt ein Schlüsselwort benötigen, da Sie jede andere Anweisung verwenden könnten, die nichts bewirkt (z. B. 0
eine vollkommen gültige Anweisung, die keine Wirkung hat), aber wenn Sie ein Schlüsselwort dafür haben, können Sie dies tun expliziter darüber, nichts tun zu wollen.
pass
?
Ja, da gibt es einen Unterschied. continue
Erzwingt, dass die Schleife bei der nächsten Iteration startet, während dies pass
bedeutet, dass hier kein Code ausgeführt werden muss, und wird durch den Rest oder den Schleifenkörper fortgesetzt.
Führen Sie diese aus und sehen Sie den Unterschied:
for element in some_list:
if not element:
pass
print 1 # will print after pass
for element in some_list:
if not element:
continue
print 1 # will not print after continue
In Ihrem Beispiel gibt es keinen Unterschied, da beide Anweisungen am Ende der Schleife erscheinen. pass
ist einfach ein Platzhalter, da er nichts tut (er führt die Ausführung an die nächste Anweisung weiter). continue
Auf der anderen Seite hat es einen bestimmten Zweck: Es weist die Schleife an, fortzufahren, als ob sie gerade neu gestartet worden wäre.
for element in some_list:
if not element:
pass
print element
ist ganz anders als
for element in some_list:
if not element:
continue
print element
Es gibt einen Unterschied zwischen ihnen, continue
überspringt die aktuelle Iteration der Schleife und führt die nächste Iteration aus. pass
tut nichts. Es ist ein leerer Platzhalter für Anweisungen.
Ich möchte Ihnen lieber ein Beispiel geben, das dies besser verdeutlicht.
>>> for element in some_list:
... if element == 1:
... print "Pass executed"
... pass
... print element
...
0
Pass executed
1
2
>>> for element in some_list:
... if element == 1:
... print "Continue executed"
... continue
... print element
...
0
Continue executed
2
Ja, da gibt es einen Unterschied. Continue
überspringt tatsächlich den Rest der aktuellen Iteration der Schleife (zurück zum Anfang). Pass
ist eine leere Aussage, die nichts tut.
Siehe die Python-Dokumente
In diesen Beispielen Nr. Wenn die Anweisung nicht die allerletzte in der Schleife ist, haben sie sehr unterschiedliche Auswirkungen.
Unterschied zwischen Pass und Continue in einer for-Schleife:
Warum also Python übergeben?
Wenn Sie eine leere Klasse, Methode oder einen leeren Block erstellen möchten.
Beispiele:
class MyException(Exception):
pass
try:
1/0
except:
pass
Ohne 'Pass' in den obigen Beispielen wird IndentationError ausgelöst.
x = [1,2,3,4]
for i in x:
if i==2:
pass #Pass actually does nothing. It continues to execute statements below it.
print "This statement is from pass."
for i in x:
if i==2:
continue #Continue gets back to top of the loop.And statements below continue are executed.
print "This statement is from continue."
Die Ausgabe ist
>>> This statement is from pass.
Lassen Sie denselben Code erneut mit geringfügigen Änderungen ausführen.
x = [1,2,3,4]
for i in x:
if i==2:
pass #Pass actually does nothing. It continues to execute statements below it.
print "This statement is from pass."
for i in x:
if i==2:
continue #Continue gets back to top of the loop.And statements below continue are executed.
print "This statement is from continue."
Die Ausgabe ist -
>>> This statement is from pass.
This statement is from pass.
This statement is from pass.
This statement is from pass.
This statement is from continue.
This statement is from continue.
This statement is from continue.
Pass macht nichts. Die Berechnung bleibt davon unberührt. Aber continue kehrt zum Anfang der Schleife zurück, um mit der nächsten Berechnung fortzufahren.
Betrachten Sie es so:
Bestehen: Python arbeitet nur mit Einrückungen! Im Gegensatz zu anderen Sprachen gibt es keine leeren geschweiften Klammern.
Wenn Sie also nichts tun möchten, falls eine Bedingung erfüllt ist, gibt es keine andere Option als Bestehen.
Weiter: Dies ist nur bei Schleifen sinnvoll. Wenn Sie für einen Wertebereich die verbleibenden Anweisungen der Schleife nicht ausführen möchten, nachdem diese Bedingung für diesen bestimmten Durchgang erfüllt ist, müssen Sie continue verwenden.
pass
wenn die Aussage True
und führen Sie die Operation aus, wenn dies der Fall ist False
. Dies ermöglicht ein effizientes Scannen von Mehrzwecklisten.
pass
kann in Szenarien verwendet werden, in denen Sie einige leere Funktionen, Klassen oder Schleifen für zukünftige Implementierungen benötigen und kein Code ausgeführt werden muss.
continue
wird in Szenarien verwendet, in denen nein, wenn eine Bedingung innerhalb einer Schleife erfüllt ist und Sie die aktuelle Iteration überspringen und zur nächsten wechseln müssen.
while True:; pass # Busy-wait for keyboard interrupt (Ctrl+C)
In den Python-Dokumenten hat mich verwirrt, dass ich es nicht klar fand, ob es sich in diesem Fall äquivalent verhält, um fortzufahren, oder dass etwas anderes beabsichtigt war. Der erste Satz "Die Pass-Anweisung macht nichts." charakterisiert alle Antworten auf meine Frage, aber irgendwie ist es mir nicht aufgefallen.