Verschachtelte if-Anweisungen und die pass-Anweisung erkunden
In diesem Schritt werden wir verschachtelte if
-Anweisungen untersuchen, bei denen eine if
-Anweisung innerhalb einer anderen platziert wird, und auch die pass
-Anweisung kennenlernen.
Verschachtelte if
-Anweisungen sind nützlich, wenn Sie eine Bedingung prüfen müssen und, wenn diese Bedingung wahr ist, dann eine weitere Bedingung (oder mehrere Bedingungen) prüfen müssen, bevor ein bestimmter Codeblock ausgeführt wird.
Erstellen wir eine neue Python-Datei namens nested_if.py
im Verzeichnis ~/project
.
cd ~/project
touch nested_if.py
Öffnen Sie nested_if.py
im Editor der WebIDE und fügen Sie den folgenden Code hinzu, um verschachtelte if
-Anweisungen zu demonstrieren. Dieses Beispiel prüft, ob eine Person aufgrund von Alter und Staatsbürgerschaft wahlberechtigt ist.
age = 20
is_citizen = True
if age >= 18:
print("You are old enough to vote.")
if is_citizen:
print("You are also a citizen.")
print("You are eligible to vote.")
else:
print("You are not a citizen.")
print("You are not eligible to vote.")
else:
print("You are not old enough to vote.")
print("You are not eligible to vote.")
print("Voting eligibility check complete.")
Speichern Sie die Datei und führen Sie sie im Terminal aus:
python nested_if.py
Die Ausgabe wird sein:
You are old enough to vote.
You are also a citizen.
You are eligible to vote.
Voting eligibility check complete.
Hier ist die äußere if
-Bedingung (age >= 18
) wahr. Dann ist auch die innere if
-Bedingung (is_citizen
) wahr, sodass der Code innerhalb des inneren if
-Blocks ausgeführt wird.
Ändern wir nun is_citizen
zu False
:
age = 20
is_citizen = False
if age >= 18:
print("You are old enough to vote.")
if is_citizen:
print("You are also a citizen.")
print("You are eligible to vote.")
else:
print("You are not a citizen.")
print("You are not eligible to vote.")
else:
print("You are not old enough to vote.")
print("You are not eligible to vote.")
print("Voting eligibility check complete.")
Speichern und führen Sie das Skript aus:
python nested_if.py
Die Ausgabe wird sein:
You are old enough to vote.
You are not a citizen.
You are not eligible to vote.
Voting eligibility check complete.
In diesem Fall ist die äußere if
-Bedingung wahr, aber die innere if
-Bedingung (is_citizen
) ist falsch, sodass der Code im inneren else
-Block ausgeführt wird.
Ändern wir schließlich das age
auf kleiner als 18:
age = 16
is_citizen = True ## Dieser Wert spielt jetzt keine Rolle
if age >= 18:
print("You are old enough to vote.")
if is_citizen:
print("You are also a citizen.")
print("You are eligible to vote.")
else:
print("You are not a citizen.")
print("You are not eligible to vote.")
else:
print("You are not old enough to vote.")
print("You are not eligible to vote.")
print("Voting eligibility check complete.")
Speichern und führen Sie das Skript aus:
python nested_if.py
Die Ausgabe wird sein:
You are not old enough to vote.
You are not eligible to vote.
Voting eligibility check complete.
Hier ist die äußere if
-Bedingung (age >= 18
) falsch, sodass der Code im äußeren else
-Block ausgeführt wird und die innere if-else
-Struktur vollständig übersprungen wird.
Verschachtelte if
-Anweisungen können Ihren Code komplexer machen, verwenden Sie sie daher mit Bedacht. Manchmal können logische Operatoren (and
, or
, not
) Bedingungen vereinfachen und Verschachtelungen vermeiden. Zum Beispiel könnte der erste Fall als if age >= 18 and is_citizen:
geschrieben werden.
Schauen wir uns nun die pass
-Anweisung an. Die pass
-Anweisung ist eine Nulloperation; es passiert nichts, wenn sie ausgeführt wird. Sie ist nützlich als Platzhalter, wenn eine Anweisung syntaktisch erforderlich ist, Sie aber keinen Code ausführen möchten.
Sie könnten beispielsweise einen if
- oder else
-Block haben, dessen Implementierung Sie noch nicht entschieden haben. Die Verwendung von pass
verhindert einen Syntaxfehler.
Ändern Sie nested_if.py
, um eine pass
-Anweisung einzufügen:
age = 17
if age >= 18:
pass ## Wir haben noch nicht entschieden, was zu tun ist, wenn sie alt genug sind
else:
print("You are not old enough to vote.")
print("Check complete.")
Speichern und führen Sie das Skript aus:
python nested_if.py
Die Ausgabe wird sein:
You are not old enough to vote.
Check complete.
Da age
17 ist, ist die if
-Bedingung falsch und der else
-Block wird ausgeführt. Die pass
-Anweisung im if
-Block tut nichts.
Wenn wir age
auf 18 ändern:
age = 18
if age >= 18:
pass ## Wir haben noch nicht entschieden, was zu tun ist, wenn sie alt genug sind
else:
print("You are not old enough to vote.")
print("Check complete.")
Speichern und ausführen:
python nested_if.py
Die Ausgabe wird sein:
Check complete.
Die if
-Bedingung ist wahr, die pass
-Anweisung wird ausgeführt (tut nichts) und der else
-Block wird übersprungen.
Die pass
-Anweisung ist ein temporärer Platzhalter. In einem echten Programm würden Sie pass
durch den tatsächlichen Code ersetzen, den Sie ausführen möchten.