Wie man bedingte Anweisungen in Python 3 schreibt
Einführung
Bedingte Anweisungen sind Teil jeder Programmiersprache. Mit bedingten Anweisungen können wir Code haben, der manchmal ausgeführt wird und zu anderen Zeiten nicht ausgeführt wird, abhängig von den Bedingungen des Programms zu diesem Zeitpunkt.
Wenn wir jede Anweisung eines Programms vollständig ausführen, indem wir von oben nach unten mit jeder Zeile in der richtigen Reihenfolge gehen, verlangen wir nicht von dem Programm, spezifische Bedingungen zu bewerten. Durch die Verwendung von bedingten Anweisungen können Programme bestimmen, ob bestimmte Bedingungen erfüllt sind, und dann gesagt bekommen, was als Nächstes zu tun ist.
Lass uns einige Beispiele durchgehen, in denen wir bedingte Aussagen verwenden würden:
- Wenn die Schülerin über 65% in ihrem Test erhält, melde, dass ihre Note besteht; wenn nicht, melde, dass ihre Note nicht besteht.
- Wenn er Geld auf seinem Konto hat, berechne Zinsen; wenn nicht, erhebe eine Strafgebühr.
- Wenn sie 10 Orangen oder mehr kaufen, berechnen Sie einen Rabatt von 5%; wenn sie weniger kaufen, dann nicht.
Durch die Bewertung von Bedingungen und die Zuweisung von Code, der basierend darauf ausgeführt wird, ob diese Bedingungen erfüllt sind oder nicht, schreiben wir bedingten Code.
Dieses Tutorial führt Sie in das Schreiben von bedingten Anweisungen in der Programmiersprache Python ein.
Voraussetzungen
Sie sollten Python 3 installiert und eine Programmierumgebung auf Ihrem Computer oder Server eingerichtet haben. Wenn Sie keine Programmierumgebung eingerichtet haben, können Sie auf die Installations- und Einrichtungsanleitungen für eine lokale Programmierumgebung oder für eine Programmierumgebung auf Ihrem Server verweisen, die für Ihr Betriebssystem (Ubuntu, CentOS, Debian usw.) geeignet ist.
Wenn-Anweisung
Wir beginnen mit der if-Anweisung, die überprüft, ob eine Aussage wahr oder falsch ist, und den Code nur ausführt, wenn die Aussage wahr ist.
Info: Um dem Beispielcode in diesem Tutorial zu folgen, öffnen Sie eine Python-interaktive Shell auf Ihrem lokalen System, indem Sie den Befehl python3 ausführen. Dann können Sie die Beispiele kopieren, einfügen oder bearbeiten, indem Sie sie nach der >>> Eingabeaufforderung hinzufügen.
Öffnen Sie in einem einfachen Texteditor eine Datei und schreiben Sie den folgenden Code:
grade = 70
if grade >= 65:
print("Passing grade")
Mit diesem Code haben wir die Variable grade und weisen ihr den ganzzahligen Wert 70 zu. Wir verwenden dann die if-Anweisung, um zu überprüfen, ob die Variable grade größer oder gleich (>=) 65 ist. Wenn dies der Fall ist, sagen wir dem Programm, dass es den String Bestanden ausgeben soll.
Speichere das Programm als grade.py und führe es in einer lokalen Programmierumgebung über ein Terminalfenster mit dem Befehl python grade.py aus.
In diesem Fall erfüllt die Note 70 die Bedingung, größer oder gleich 65 zu sein, sodass Sie die folgende Ausgabe erhalten, sobald Sie das Programm ausführen:
Passing grade
Lass uns nun das Ergebnis dieses Programms ändern, indem wir den Wert der grade Variablen auf 60 ändern:
grade = 60
if grade >= 65:
print("Passing grade")
Wenn wir diesen Code speichern und ausführen, erhalten wir keine Ausgabe, da die Bedingung nicht erfüllt war und wir dem Programm nicht gesagt haben, dass es eine andere Anweisung ausführen soll.
Um ein weiteres Beispiel zu geben, lassen Sie uns berechnen, ob der Kontostand eines Bankkontos unter 0 liegt. Lassen Sie uns eine Datei namens account.py erstellen und das folgende Programm schreiben:
balance = -5
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
Wenn wir das Programm mit python account.py ausführen, erhalten wir die folgende Ausgabe:
Balance is below 0, add funds now or you will be charged a penalty.
In dem Programm haben wir die Variable balance mit dem Wert -5 initialisiert, der kleiner als 0 ist. Da der Kontostand die Bedingung der if-Anweisung (balance < 0) erfüllt, erhalten wir, sobald wir den Code speichern und ausführen, die Zeichenfolgenausgabe. Wenn wir den Kontostand jedoch auf 0 oder eine positive Zahl ändern, erhalten wir keine Ausgabe.
Sonst-Anweisung
Es ist wahrscheinlich, dass wir möchten, dass das Programm etwas tut, selbst wenn eine if-Anweisung als falsch bewertet wird. In unserem Notenbeispiel möchten wir eine Ausgabe, ob die Note bestanden oder nicht bestanden ist.
Um dies zu tun, fügen wir der oben genannten Notenbedingung eine else-Anweisung hinzu, die wie folgt aufgebaut ist:
grade = 60
if grade >= 65:
print("Passing grade")
else:
print("Failing grade")
Da die Note-Variable oben den Wert 60 hat, wird die if-Anweisung als falsch ausgewertet, sodass das Programm Passing grade nicht ausgeben wird. Die folgende else-Anweisung sagt dem Programm, dass es trotzdem etwas tun soll.
Wenn wir das Programm speichern und ausführen, erhalten wir die folgende Ausgabe:
Failing grade
Wenn wir das Programm dann umschreiben, um der Note einen Wert von 65 oder höher zu geben, erhalten wir stattdessen die Ausgabe Bestanden.
Um eine else-Anweisung zum Beispiel des Bankkontos hinzuzufügen, schreiben wir den Code wie folgt um:
balance = 522
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
else:
print("Your balance is 0 or above.")
Your balance is 0 or above.
Hier haben wir den Wert der balance-Variablen in eine positive Zahl geändert, damit die else-Anweisung druckt. Um die erste if-Anweisung auszugeben, können wir den Wert in eine negative Zahl umschreiben.
Durch die Kombination einer if-Anweisung mit einer else-Anweisung erstellen Sie eine zweigeteilte Bedingungsanweisung, die dem Computer sagt, bestimmten Code auszuführen, unabhängig davon, ob die if-Bedingung erfüllt ist oder nicht.
Sonst wenn-Anweisung
Bisher haben wir eine boolesche Option für bedingte Anweisungen vorgestellt, bei der jede if-Anweisung entweder true oder false ergibt. In vielen Fällen möchten wir ein Programm, das mehr als zwei mögliche Ergebnisse bewertet. Dazu verwenden wir eine else if-Anweisung, die in Python als elif geschrieben wird. Die elif- oder else if-Anweisung sieht aus wie die if-Anweisung und bewertet eine weitere Bedingung.
Im Bankkonto-Programm möchten wir möglicherweise drei verschiedene Ausgaben für drei unterschiedliche Situationen haben:
- Das Guthaben liegt unter 0
- Die Bilanz ist gleich 0
- Das Guthaben liegt über 0
Die elif Anweisung wird zwischen der if Anweisung und der else Anweisung wie folgt platziert:
. . .
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
elif balance == 0:
print("Balance is equal to 0, add funds soon.")
else:
print("Your balance is 0 or above.")
Jetzt gibt es drei mögliche Ausgaben, die auftreten können, sobald wir das Programm ausführen:
- Wenn die Variable
balancegleich0ist, erhalten wir die Ausgabe aus derelif-Anweisung (Der Kontostand ist gleich 0, fügen Sie bald Mittel hinzu.) - Wenn die Variable
balanceauf eine positive Zahl gesetzt ist, erhalten wir die Ausgabe aus derelse-Anweisung (Ihr Guthaben ist 0 oder mehr.). - Wenn die Variable
balanceauf eine negative Zahl gesetzt wird, ist die Ausgabe der String aus derif-Anweisung (Balance is below 0, add funds now or you will be charged a penalty).
Was ist, wenn wir jedoch mehr als drei Möglichkeiten haben möchten? Wir können dies tun, indem wir mehr als eine elif-Anweisung in unseren Code schreiben.
Im grade.py Programm lassen Sie uns den Code so umschreiben, dass es einige Buchstabennoten gibt, die den Bereichen der numerischen Noten entsprechen:
- 90 oder mehr entspricht einer Note A
- 80-89 entspricht einer Note B
- 70-79 entspricht einer Note C
- 65-69 entspricht einer D-Note
- 64 oder darunter entspricht einer F-Note
Um diesen Code auszuführen, benötigen wir eine if-Anweisung, drei elif-Anweisungen und eine else-Anweisung, die alle fehlgeschlagenen Fälle behandelt.
Lass uns den Code aus dem obigen Beispiel umschreiben, um Zeichenfolgen zu haben, die jede der Noten ausgeben. Wir können unsere else-Anweisung gleich lassen.
. . .
if grade >= 90:
print("A grade")
elif grade >=80:
print("B grade")
elif grade >=70:
print("C grade")
elif grade >= 65:
print("D grade")
else:
print("Failing grade")
Da elif-Anweisungen der Reihe nach ausgewertet werden, können wir unsere Anweisungen ziemlich einfach halten. Dieses Programm führt die folgenden Schritte aus:
Wenn die Note größer als 90 ist, wird das Programm
A Notedrucken, wenn die Note weniger als 90 ist, fährt das Programm mit der nächsten Anweisung fort...Wenn die Note größer oder gleich 80 ist, wird das Programm
B Noteausgeben. Wenn die Note 79 oder weniger ist, wird das Programm mit der nächsten Anweisung fortfahren…Wenn die Note größer oder gleich 70 ist, wird das Programm
C-Noteausgeben, wenn die Note 69 oder weniger ist, wird das Programm mit der nächsten Anweisung fortfahren…Wenn die Note größer oder gleich 65 ist, wird das Programm
D-Noteausgeben, wenn die Note 64 oder weniger ist, wird das Programm mit der nächsten Anweisung fortfahren…Das Programm wird
Durchgefallenausgeben, da keine der oben genannten Bedingungen erfüllt wurde.
Verschachtelte If-Anweisungen
Sobald Sie sich mit den if, elif und else Anweisungen wohlfühlen, können Sie zu geschachtelten Bedingungsanweisungen übergehen. Wir können geschachtelte if Anweisungen für Situationen verwenden, in denen wir eine sekundäre Bedingung überprüfen möchten, wenn die erste Bedingung als wahr ausgeführt wird. Dafür können wir eine if-else-Anweisung innerhalb einer anderen if-else-Anweisung haben. Lassen Sie uns die Syntax einer geschachtelten if Anweisung betrachten:
if statement1: #outer if statement
print("true")
if nested_statement: #nested if statement
print("yes")
else: #nested else statement
print("no")
else: #outer else statement
print("false")
Einige mögliche Ausgaben können aus diesem Code resultieren:
- Wenn
statement1wahr ist, wird das Programm dann prüfen, ob auch dienested_statementwahr ist. Wenn beide Fälle wahr sind, wird die Ausgabe sein:
true yes
- Wenn jedoch
statement1wahr ist, abernested_statementfalsch ist, wird die Ausgabe sein:
true no
- Und wenn
statement1false ergibt, wird die geschachtelte if-else-Anweisung nicht ausgeführt, sodass dieelse-Anweisung alleine ausgeführt wird, und die Ausgabe wird sein:
false
Wir können auch mehrere if-Anweisungen ineinander geschachtelt in unserem Code haben:
if statement1: #outer if
print("hello world")
if nested_statement1: #first nested if
print("yes")
elif nested_statement2: #first nested elif
print("maybe")
else: #first nested else
print("no")
elif statement2: #outer elif
print("hello galaxy")
if nested_statement3: #second nested if
print("yes")
elif nested_statement4: #second nested elif
print("maybe")
else: #second nested else
print("no")
else: #outer else
statement("hello universe")
Im obigen Code gibt es eine verschachtelte if-Anweisung innerhalb jeder if-Anweisung zusätzlich zur elif-Anweisung. Dies ermöglicht mehr Optionen innerhalb jeder Bedingung.
Schauen wir uns ein Beispiel für verschachtelte if-Anweisungen mit unserem grade.py-Programm an. Wir können zunächst überprüfen, ob eine Note bestanden ist (größer oder gleich 65 %), und dann evaluieren, welchem Buchstabennotenwert die numerische Note entsprechen sollte. Wenn die Note jedoch nicht bestanden ist, müssen wir nicht die Buchstabennoten durchlaufen, sondern können stattdessen das Programm so einstellen, dass es meldet, dass die Note nicht bestanden ist. Unser modifizierter Code mit der verschachtelten if-Anweisung wird wie folgt aussehen:
. . .
if grade >= 65:
print("Passing grade of:")
if grade >= 90:
print("A")
elif grade >=80:
print("B")
elif grade >=70:
print("C")
elif grade >= 65:
print("D")
else:
print("Failing grade")
Wenn wir den Code mit der Variablen grade, die auf den ganzzahligen Wert 92 gesetzt ist, ausführen, wird die erste Bedingung erfüllt, und das Programm gibt Bestehensnote von: aus. Als Nächstes wird überprüft, ob die Note größer oder gleich 90 ist, und da auch diese Bedingung erfüllt ist, wird A ausgegeben.
Wenn wir den Code mit der grade-Variablen auf 60 setzen, dann wird die erste Bedingung nicht erfüllt, sodass das Programm die verschachtelten if-Anweisungen überspringt und zur else-Anweisung übergeht, wobei das Programm Failing grade ausgibt.
Wir können natürlich noch weitere Optionen hinzufügen und eine zweite Ebene von geschachtelten Wenn-Anweisungen verwenden. Vielleicht möchten wir die Noten A+, A und A- separat bewerten. Wir können dies tun, indem wir zuerst prüfen, ob die Note bestanden ist, dann überprüfen, ob die Note 90 oder höher ist, und schließlich überprüfen, ob die Note über 96 liegt, um beispielsweise eine A+ zu erhalten:
. . .
if grade >= 65:
print("Passing grade of:")
if grade >= 90:
if grade > 96:
print("A+")
elif grade > 93 and grade <= 96:
print("A")
elif grade >= 90:
print("A-")
. . .
Im obigen Code wird für eine grade-Variable, die auf 96 gesetzt ist, das Programm Folgendes ausführen:
- Überprüfen Sie, ob die Note größer oder gleich 65 ist (wahr)
- Drucke
Bestehensnote von:aus - Überprüfen Sie, ob die Note größer oder gleich 90 ist (wahr)
- Überprüfen Sie, ob die Note größer als 96 ist (falsch)
- Überprüfen Sie, ob die Note größer als 93 und auch kleiner oder gleich 96 ist (wahr)
- Drucken Sie
A - Lassen Sie diese geschachtelten Bedingungsanweisungen und fahren Sie mit dem verbleibenden Code fort.
Die Ausgabe des Programms für eine Note von 96 sieht daher wie folgt aus:
Passing grade of:
A
Verschachtelte if-Anweisungen können die Möglichkeit bieten, mehrere spezifische Bedingungen auf verschiedenen Ebenen in deinen Code einzufügen.
Schlussfolgerung
Durch die Verwendung von bedingten Anweisungen wie der if-Anweisung haben Sie eine größere Kontrolle darüber, was Ihr Programm ausführt. Bedingte Anweisungen sagen dem Programm, dass es prüfen soll, ob eine bestimmte Bedingung erfüllt ist. Wenn die Bedingung erfüllt ist, wird spezifischer Code ausgeführt, aber wenn sie nicht erfüllt ist, wird das Programm weiterhin zu anderem Code weiterarbeiten.
Um weiter mit bedingten Anweisungen zu üben, versuchen Sie, verschiedene Operatoren zu verwenden, Operatoren mit und oder oder zu kombinieren und bedingte Anweisungen zusammen mit Schleifen zu verwenden. Sie können auch unser Tutorial zur Erstellung eines einfachen Taschenrechnerprogramms durchgehen, um sich besser mit bedingten Anweisungen vertraut zu machen.