Conditions: if, then, else - Learn Python 3 - Snakify

Lesson 3
Bedingungen: Wenn-dann-sonst


1. Syntax

Alle Programme in der ersten Lektion wurden nacheinander Zeile für Zeile ausgeführt. Keine Zeile konnte übersprungen werden.

Betrachten wir das folgende Problem: Bestimmen Sie für die gegebene Ganzzahl X ihren absoluten Wert. Wenn X> 0, sollte das Programm den Wert X ausgeben, andernfalls sollte es -X ausgeben. Dieses Verhalten kann mit dem Ablaufprogramm nicht erreicht werden. Das Programm sollte den nächsten Schritt bedingt auswählen. Hier helfen die Bedingungen:

x = int(input())
if x > 0:
    print(x)
else:
    print(-x)

Dieses Programm verwendet eine bedingte Anweisung if . Nach dem if wir eine Bedingung (x > 0) gefolgt von einem Doppelpunkt. Danach setzen wir einen Block von Anweisungen, der nur dann ausgeführt wird, wenn die Bedingung wahr ist (dh zu True ausgewertet wird). Auf diesen Block kann das Wort else , colon und ein weiterer Block von Anweisungen folgen, der nur ausgeführt wird, wenn die Bedingung falsch ist (dh zu False ausgewertet wird). Ist der obige Fall der Fall, ist die Bedingung falsch, daher wird der Block 'else' ausgeführt. Jeder Block sollte mit Leerzeichen eingerückt werden.

Zusammenfassend hat die bedingte Anweisung in Python die folgende Syntax:

if condition :
    true-block
    several instructions that are executed
    if the condition evaluates to True
else:
    false-block
    several instructions that are executed
    if the condition evaluates to False

Das else Schlüsselwort mit dem 'false'-Block kann weggelassen werden, falls nichts unternommen werden sollte, wenn die Bedingung falsch ist. Zum Beispiel können wir die Variable x durch ihren absoluten Wert wie folgt ersetzen:

x = int(input())
if x < 0:
    x = -x
print(x)

In diesem Beispiel ist die Variable x nur dann -x zugeordnet, wenn x < 0 . Im Gegensatz dazu wird der Befehl print(x) jedes Mal ausgeführt, weil er nicht eingerückt ist, also nicht zum "wahren" Block gehört.

Die Einrückung ist eine allgemeine Methode in Python, um Code-Blöcke zu trennen. Alle Anweisungen innerhalb desselben Blocks sollten auf die gleiche Weise eingerückt werden, dh sie sollten die gleiche Anzahl von Leerzeichen am Zeilenanfang haben. Es wird empfohlen, 4 Leerzeichen für den Einzug zu verwenden.

Die Einrückung unterscheidet Python von der meisten anderen Sprache, in der die geschweiften Klammern { und } verwendet werden, um die Blöcke zu bilden.

Übrigens gibt es in Python eine eingebaute Funktion für absoluten Wert:

x = int(input())
print(abs(x))
Advertising by Google, may be based on your interests

2. Verschachtelte Bedingungen

Jede Python-Anweisung kann in "wahre" Blöcke und "falsche" Blöcke gesetzt werden, einschließlich einer anderen bedingten Anweisung. Auf diese Weise erhalten wir geschachtelte Bedingungen. Die Blöcke der inneren Bedingungen werden um zwei weitere Leerzeichen (z. B. 8 Leerzeichen) eingerückt. Lass uns ein Beispiel sehen. Gegeben die Koordinaten des Punktes in der Ebene, drucke seinen Quadranten.

x = int(input())
y = int(input())
if x > 0:
    if y > 0:
        # x ist größer als 0, y ist größer als 0
        print("Quadrant I")
    else:    
        # x ist größer als 0, y ist kleiner oder gleich 0
        print("Quadrant IV")
else:
    if y > 0:
        # x ist kleiner oder gleich 0, y ist größer als 0
        print("Quadrant II")
    else:    
        # x ist kleiner oder gleich 0, y ist kleiner oder gleich 0
        print("Quadrant III")

In diesem Beispiel verwenden wir die Kommentare: den erklärenden Text, der keine Auswirkungen auf die Programmausführung hat. Dieser Text beginnt mit dem Hash # und dauert bis zum Ende der Zeile.

Advertising by Google, may be based on your interests

3. Vergleichsoperatoren

Normalerweise hat die Bedingung nach if einen oder mehrere der folgenden Operatoren:

<
Weniger - Die Bedingung ist wahr, wenn die linke Seite kleiner als die rechte Seite ist.
>
größer - Die Bedingung ist wahr, wenn die linke Seite größer als die rechte Seite ist.
<=
weniger oder gleich.
>=
größer oder gleich.
==
gleich.
!=
nicht gleich.

Zum Beispiel bedeutet die Bedingung x * x < 1000 "der Wert des Ausdrucks x * x ist kleiner als 1000" und die Bedingung 2 * x != y bedeutet "der doppelte Wert der Variablen x ist nicht gleich dem Wert der Variablen y ".

Die Vergleichsoperatoren in Python können wie a == b == c gruppiert werden: a == b == c oder x <= y >= 10 . Es ist eine seltene Sache unter Programmiersprachen.

Advertising by Google, may be based on your interests

4. Bool-Objekte und logische Operatoren

Wenn wir zwei ganzzahlige Objekte mit dem Operator + wie 2 + 5 summieren, erhalten wir ein neues Objekt: 7 . Auf die gleiche Weise erhalten wir beim Vergleich zweier Ganzzahlen mit dem Operator < , wie 2 < 5 , ein neues Objekt: True .

print(2 < 5)
print(2 > 5)
Die True und False Objekte haben einen speziellen Typ namens bool . Da jeder Typname zum Einbetten von Objekten in diesen Typ verwendet werden kann, sehen wir, was dieser Cast für Zahlen bietet:
print(bool(-10))    # Wahr
print(bool(0))      # Falsch - Null ist die einzige falsche Zahl
print(bool(10))     # Wahr

print(bool(''))     # False - leere Zeichenfolge ist die einzige falsche Zeichenfolge
print(bool('abc'))  # Wahr

Manchmal müssen Sie mehrere Bedingungen gleichzeitig prüfen. Sie können z. B. prüfen, ob eine Zahl n durch 2 teilbar ist, indem Sie die Bedingung n % 2 == 0 ( n ergibt bei Division durch 2 einen Rest 0 ). Wenn Sie überprüfen müssen, ob die beiden Zahlen n und m beide durch 2 teilbar sind, sollten Sie sowohl n % 2 == 0 als auch m % 2 == 0 überprüfen. Dazu verbinden Sie sie mit einem Operator and (logisches UND): n % 2 == 0 and m % 2 == 0 .

Python hat logisches UND, logisches ODER und Negation.

Operator and ist ein binärer Operator, der nur dann True ergibt, wenn sowohl die linke Seite als auch die rechte Seite True .

Operator or ist ein binärer Operator, der True ergibt, wenn mindestens eine seiner Seiten True .

Operator not eine einstellige Negation, wird es von einem gewissen Wert. Es wird zu True ausgewertet, wenn dieser Wert False und umgekehrt.

Prüfen wir, ob mindestens eine der beiden Nummern mit 0 endet:

a = int(input())
b = int(input())
if a % 10 == 0 or b % 10 == 0:
    print('YES')
else:
    print('NO')

Prüfen wir, ob die Zahl a positiv und die Zahl b nicht negativ ist:

if a > 0 and not (b < 0):

Anstelle von not (b < 0) wir schreiben (b >= 0) .

Advertising by Google, may be based on your interests

5. 'elif' Wort

Wenn Sie mit dem Bedingungsoperator mehr als zwei Optionen unterscheiden können, können Sie die Anweisung if... elif... else .

Lassen Sie uns zeigen, wie es funktioniert, indem Sie das Beispiel mit Punkt (x, y) in der Ebene und Quadranten von oben umschreiben:

x = int(input())
y = int(input())
if x > 0 and y > 0:
    print("Quadrant I")
elif x > 0 and y < 0:
    print("Quadrant IV")
elif y > 0:
    print("Quadrant II")
else:
    print("Quadrant III")

In diesem Fall werden die Bedingungen in if und elif überprüft, bis die erste wahre Bedingung gefunden ist. Dann wird nur der Wahr-Block für diese Bedingung ausgeführt. Wenn alle Bedingungen falsch sind, wird der "else" -Block ausgeführt, falls er vorhanden ist.

Advertising by Google, may be based on your interests