Gibt es einen signifikanten Unterschied zwischen den beiden Python-Schlüsselwörtern continue
und pass
ähnlich wie in den Beispielen?
for element in some_list:
if not element:
pass
und
for element in some_list:
if not element:
continue
Ich sollte mir bewusst sein?
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.Antworten:
Ja, sie machen ganz andere Dinge.
pass
tut einfach nichts, währendcontinue
mit der nächsten Schleifeniteration fortgefahren wird. In Ihrem Beispiel wird der Unterschied deutlich, wenn Sie nachif
: Folgendes hinzufügen : Nach der Ausführungpass
wird diese weitere Anweisung ausgeführt. Danachcontinue
würde es nicht.quelle
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 verwendenexcept 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 diespass
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:
quelle
continue
springt zurück zum Anfang der Schleife.pass
wird die Verarbeitung fortsetzen.Wenn der Durchgang am Ende der Schleife ist, ist der Unterschied vernachlässigbar, da der Fluss ohnehin nur zum oberen Ende der Schleife zurückkehren würde.
quelle
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.ist ganz anders als
quelle
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.
quelle
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
quelle
In diesen Beispielen Nr. Wenn die Anweisung nicht die allerletzte in der Schleife ist, haben sie sehr unterschiedliche Auswirkungen.
quelle
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:
Ohne 'Pass' in den obigen Beispielen wird IndentationError ausgelöst.
quelle
Die Ausgabe ist
Lassen Sie denselben Code erneut mit geringfügigen Änderungen ausführen.
Die Ausgabe ist -
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.
quelle
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.
quelle
pass
wenn die AussageTrue
und führen Sie die Operation aus, wenn dies der Fall istFalse
. 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.quelle