Bedingte if-Anweisung in Python. Syntax, Else/Elif-Blöcke, Beispiele

Beim Erlernen des Programmierens ist es oft notwendig, Programme zu erstellen, die im wirklichen Leben nicht so einfach anzuwenden sind. Schließlich müssen Sie von Zeit zu Zeit Anweisungen nur unter bestimmten Bedingungen befolgen. Um dies im Programm umsetzen zu können, haben alle Sprachen Steueranweisungen. Mit ihrer Hilfe können Sie den Ablauf der Codeausführung steuern, Schleifen erstellen oder bestimmte Aktionen nur ausführen, wenn eine bestimmte Bedingung wahr ist.

Heute werden wir über die if-Anweisung sprechen, die die aktuelle Situation auf eine bestimmte Bedingung überprüft und basierend auf diesen Informationen Entscheidungen über weitere Aktionen trifft.

Arten von Steueranweisungen

Im Allgemeinen ist if nicht die einzige Anweisung, die den Ablauf eines Programms steuert. Ebenso wie er selbst Bestandteil einer größeren Kette von Betreibern sein kann.

Es gibt auch Schleifen und Anweisungen, die den Prozess seiner Ausführung steuern. Heute werden wir nur über den bedingten Operator und die Ketten sprechen, an denen er teilnehmen kann.

Beim Programmieren gibt es so etwas wie Verzweigungen. Genau das bedeutet eine Folge von Befehlen, die nur ausgeführt wird, wenn eine bestimmte Bedingung wahr ist. Die Kriterien selbst können unterschiedlich sein:

  1. Gleichheit einer Variablen mit einem bestimmten Wert.
  2. Ausführen einer bestimmten Aktion.
  3. Anwendungsstatus (reduziert oder nicht).

Das Spektrum kann viel größer sein. Bedingte Anweisungen gibt es in mehreren Arten:

  1. Mit einem Zweig. Das heißt, es wird eine einzige Prüfung durchgeführt, aufgrund derer bestimmte Aktionen durchgeführt werden.
  2. Mit zwei oder mehr Zweigen. Wenn Kriterium 1 wahr ist, dann prüfe Kriterium 2. Wenn es wahr ist, dann prüfe 3. Führe also so viele Prüfungen wie nötig durch.
  3. Mit mehreren Bedingungen. Hier ist alles einfach. Der Interpreter prüft auf mehrere Bedingungen oder eine davon.

if-Anweisung

Der Aufbau der if-Anweisung ist in allen Sprachen ähnlich. In Python unterscheidet sich die Syntax jedoch etwas von allen anderen:

wenn Bedingung:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

Zuerst wird der Operator selbst deklariert, danach wird die Bedingung geschrieben, unter der er zu arbeiten beginnt. Die Bedingung kann entweder wahr oder falsch sein.

Darauf folgt ein Block mit Befehlen. Folgt unmittelbar ein zu erfüllendes Kriterium, so wird die entsprechende Befehlsfolge als if-Block bezeichnet. Sie können eine beliebige Anzahl von Befehlen darin verwenden.

Achtung! Die Einrückung innerhalb aller if-Block-Befehle muss gleich groß sein. Die Blockgrenzen werden durch die Einzüge bestimmt. 

Laut Sprachdokumentation beträgt der Einzug 4 Leerzeichen. 

Wie funktioniert dieser Operator? Wenn der Interpreter das if-Wort sieht, prüft er den Ausdruck sofort anhand der benutzerdefinierten Kriterien. Wenn dies der Fall ist, beginnt er, nach Anweisungen zu suchen und diese zu befolgen. Andernfalls werden alle Befehle aus diesem Block übersprungen.

Wenn eine Anweisung nach der Bedingung nicht eingerückt ist, wird sie nicht als if-Block behandelt. In unserer Situation ist diese Linie . Daher wird diese Zeile unabhängig vom Ergebnis der Prüfung ausgeführt.

Hier ist ein Code-Snippet für ein Beispiel, wie dieser Operator funktioniert.

number = int(input(“Geben Sie eine Zahl ein: “))

wenn Zahl > 10:

    print("Die Zahl ist größer als 10")

Dieses Programm fordert den Benutzer zur Eingabe einer Zahl auf und prüft, ob diese größer als 10 ist. Wenn dies der Fall ist, gibt es die entsprechenden Informationen zurück. Wenn der Benutzer beispielsweise die Zahl 5 eingibt, wird das Programm einfach beendet, und das war's.

Aber wenn Sie die Zahl 100 angeben, wird der Dolmetscher verstehen, dass es mehr als zehn sind, und es melden.

Achtung! Wenn in unserem Fall die Bedingung falsch ist, stoppt das Programm, da nach der Anweisung keine Befehle gegeben werden.

Es gibt nur einen Befehl im obigen Code. Aber es gibt noch viel mehr davon. Die einzige Voraussetzung ist die Einrückung.

Analysieren wir nun diese Befehlsfolge.

number = int(input(“Schreibe eine Zahl: “))

wenn Zahl > 10:

    print("erste Zeile")

    print("zweite Zeile")

    print("dritte Zeile")

print("Die Zeile, die ausgeführt wird, unabhängig von der eingegebenen Zahl")

print("Anwendung beenden")

Versuchen Sie zu erraten, wie die Ausgabe aussehen wird, wenn Sie die Werte 2, 5, 10, 15, 50 eingeben.

Wie Sie sehen, werden, wenn die vom Benutzer eingegebene Zahl mehr als zehn ist, drei Zeilen ausgegeben + eine mit dem Text „Jedes Mal ausführen …“ und eine „Ende“, und wenn weniger als zehn, dann nur eine, mit ein anderer Text. Wenn wahr, werden nur die Zeilen 3,4,5 ausgeführt. Die letzten beiden Zeilen werden jedoch geschrieben, egal welche Zahl der Benutzer angibt.

Wenn Sie die Anweisungen direkt in der Konsole verwenden, sieht das Ergebnis anders aus. Der Interpreter schaltet sofort den Mehrzeilenmodus ein, wenn er nach Angabe des Überprüfungskriteriums die Eingabetaste drückt.

Angenommen, wir haben die folgende Befehlsfolge geschrieben.

>>>

>>> n = 100

>>> wenn n > 10:

...

Danach werden wir sehen, dass >>> durch Auslassungspunkte ersetzt wurde. Dies bedeutet, dass der mehrzeilige Eingabemodus aktiviert ist. Mit einfachen Worten, wenn Sie die Eingabetaste drücken, werden Sie zur Eingabe der zweiten Stufe der Anweisung weitergeleitet. 

Und um diesen Block zu verlassen, müssen Sie dem Block eine weitere Konstruktion hinzufügen if.

>>>

>>> n = 100

>>> wenn n > 10:

… print(«nv 10»)

...

Wenn die Bedingung nicht wahr ist, endet das Programm. Dies ist ein Problem, da der Benutzer ein solches Programm als aufgrund eines Fehlers geschlossen wahrnehmen kann. Daher ist es notwendig, dem Benutzer Feedback zu geben. Dazu wird ein Link verwendet ansonsten.

Ausdrucksoperator ansonsten

Mit diesem Operator können Sie einen Link implementieren: Wenn der Ausdruck einer bestimmten Regel entspricht, führen Sie diese Aktionen aus, und wenn nicht, dann andere. Das heißt, Sie können den Ablauf des Programms in zwei Straßen aufteilen. Die Syntax ist intuitiv:

wenn Bedingung:

    # wenn blockieren

    Aussage 1

    Aussage 2

    usw.

sonst:

    # Else-Block

    Aussage 3

    Aussage 4

    und so weiter:

Lassen Sie uns erklären, wie dieser Operator funktioniert. Zunächst wird die Standardanweisung im Thread ausgeführt Eibe, prüfen, ob es passt Zustand "richtig oder falsch". Weitere Aktionen hängen von den Ergebnissen der Prüfung ab. Wenn wahr, wird die Anweisung, die sich in der Folge von Anweisungen nach der Bedingung befindet, direkt ausgeführt. Eibe, wenn es falsch ist, dann sonst

Auf diese Weise können Sie mit Fehlern umgehen. Beispielsweise muss der Benutzer einen Radius eingeben. Offensichtlich kann es nur eine Zahl mit Pluszeichen oder ein Nullwert sein. Wenn es kleiner als 0 ist, müssen Sie eine Nachricht ausgeben, in der Sie aufgefordert werden, eine positive Zahl einzugeben. 

Hier ist der Code, der diese Aufgabe implementiert. Aber hier liegt ein Fehler vor. Versuchen Sie zu erraten, welche. 

Radius = int(input(“Radius eingeben: “))

wenn Radius >= 0:

    print(“Umfang = “, 2 * 3.14 * Radius)

    print("Fläche = ", 3.14 * Radius ** 2)

    sonst:

        print("Bitte geben Sie eine positive Zahl ein")

Einrückungsfehler. Wenn è Sonst müssen sich ohne sie oder mit derselben Anzahl von ihnen befinden (je nachdem, ob sie verschachtelt sind oder nicht).

Lassen Sie uns einen anderen Anwendungsfall geben (wo alles mit Operator-Ausrichtung korrekt sein wird) – ein Anwendungselement, das ein Passwort überprüft.

Passwort = input(“Passwort eingeben: “)

wenn Passwort == «sshh»:

    print("Willkommen")

sonst:

    print("Zugriff verweigert")

Diese Anweisung überspringt die Person weiter, wenn das Passwort sshh ist. Bei einer anderen Kombination aus Buchstaben und Zahlen wird die Meldung „Zugriff verweigert“ angezeigt.

Anweisungsausdruck if-elif-else

Nur wenn mehrere Bedingungen nicht wahr sind, wird die im Block stehende Anweisung ausgeführt. sonst. Dieser Ausdruck funktioniert so.

wenn Bedingung_1:

    # wenn blockieren

    Aussage

    Aussage

    mehr aussage

elf Bedingung_2:

    # erster Elif-Block

    Aussage

    Aussage

    mehr aussage

elf Bedingung_3:

    # zweiter Elif-Block

    Aussage

    Aussage

    mehr aussage

...

sonst

    Aussage

    Aussage

    mehr aussage

Sie können beliebig viele Zusatzbedingungen angeben.

Verschachtelte Anweisungen

Eine andere Möglichkeit, mehrere Bedingungen zu implementieren, besteht darin, zusätzliche Bedingungsprüfungen in den if-Block einzufügen.

Operator if innerhalb eines anderen Bedingungsblocks

gre_score = int(input("Geben Sie Ihr aktuelles Kreditlimit ein"))

per_grad = int(input(“Geben Sie Ihre Bonität ein: “))

wenn per_grad > 70:

    # äußerer if-Block

        wenn gre_score > 150:

            # innerer if-Block

    print("Herzlichen Glückwunsch, Sie haben einen Kredit erhalten")

sonst:

    print("Sie haben leider keinen Anspruch auf einen Kredit")

Dieses Programm führt eine Bonitätsprüfung durch. Wenn es weniger als 70 beträgt, meldet das Programm, dass der Benutzer keinen Anspruch auf Kredit hat. Wenn es größer ist, wird eine zweite Überprüfung durchgeführt, um zu sehen, ob das aktuelle Kreditlimit größer als 150 ist. Wenn ja, dann wird eine Meldung angezeigt, dass das Darlehen vergeben wurde.

Wenn beide Werte falsch sind, dann wird eine Meldung angezeigt, dass der Benutzer keine Möglichkeit hat, einen Kredit zu erhalten. 

Jetzt wollen wir das Programm ein wenig überarbeiten.

gre_score = int(input(“Geben Sie das aktuelle Limit ein: “))

per_grad = int(input(“Kredit-Score eingeben: “))

wenn per_grad > 70:

    wenn gre_score > 150:

        print("Herzlichen Glückwunsch, Sie haben einen Kredit erhalten")

    sonst:

        print("Ihr Kreditlimit ist niedrig")

sonst:

    print("Entschuldigung, Sie haben keinen Anspruch auf Kredit")

Der Code selbst ist sehr ähnlich, aber verschachtelt if bietet auch einen Algorithmus für den Fall, dass sich die Bedingung als falsch herausstellt. Das heißt, das Limit auf der Karte ist nicht ausreichend, aber die Kredithistorie ist gut, die Meldung „Sie haben eine niedrige Kreditwürdigkeit“ wird angezeigt.

if-else-Anweisung innerhalb einer Bedingung sonst

Lassen Sie uns ein weiteres Programm erstellen, das die Note eines Schülers basierend auf Testergebnissen bestimmt.

score = int(input(“Geben Sie Ihre Punktzahl ein: “))

wenn Punktzahl >= 90:

    print("Toll! Deine Note ist XNUMX")

sonst:

    wenn Punktzahl >= 80:

print("Großartig! Ihre Note ist B")

    sonst:

wenn Punktzahl >= 70:

    print("Gut! Deine Note ist C")

sonst:

    wenn Punktzahl >= 60:

print("Ihre Note ist D. Es lohnt sich, den Stoff zu wiederholen.")

    sonst:

print("Du hast die Prüfung nicht bestanden")

Die Anwendung prüft zunächst, ob die Punktzahl größer oder gleich 90 ist. Wenn ja, gibt sie eine A-Note zurück. Wenn diese Bedingung falsch ist, werden nachfolgende Überprüfungen durchgeführt. Wir sehen, dass der Algorithmus auf den ersten Blick fast gleich ist. Also statt nach innen zu schauen sonst besser eine Kombination verwenden if-elif-else.

Also der Betreiber if erfüllt eine sehr wichtige Funktion – es stellt sicher, dass bestimmte Codeteile nur dann ausgeführt werden, wenn dies erforderlich ist. Es ist aus dem Programmieren nicht mehr wegzudenken, denn selbst die einfachsten Algorithmen erfordern Abzweigungen wie „Wenn du nach links gehst, findest du es, und wenn du nach rechts gehst, dann musst du dies und das tun.“

Hinterlassen Sie uns einen Kommentar