Vergleichsoperatoren
Die Zeichen < und >, die du in Bedingungen benutzt hast, sind Vergleichsoperatoren: Sie vergleichen zwei Werte, und das Ergebnis ist wahr oder falsch. Python hat sechs davon:
==gleich:5 == 5!=ungleich:5 != 3>größer als:5 > 3<kleiner als:3 < 5>=größer oder gleich:5 >= 5<=kleiner oder gleich:3 <= 5
Alle Beispiele in der Liste sind wahr. Bei !=, >= und <= steht das Gleichheitszeichen immer an zweiter Stelle, ohne Leerzeichen dazwischen. Achte an der Grenze auf den Unterschied zwischen > und >=: 18 > 18 ist falsch, aber 18 >= 18 ist wahr. „18 oder älter“ ist also alter >= 18.
„Gleich“ schreibt man mit zwei Gleichheitszeichen, ==, weil ein einzelnes schon eine andere Aufgabe hat. preis = 100 weist zu: Es speichert 100 in der Variablen preis. preis == 100 vergleicht: Es fragt, ob preis gleich 100 ist, und ändert nichts. In einer Bedingung = statt == zu schreiben ist einer der häufigsten Fehler, und Python meldet ihn sofort:
preis = 100
if preis = 100:
print("Es kostet genau 100")Traceback (most recent call last):
File "<exec>", line 2
if preis = 100:
^^^^^^^^^^^
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?Die letzte Zeile schlägt sogar die Korrektur vor: ==. (:= ist etwas anderes, das du in diesem Kurs nicht brauchst.)
Du kannst Text genauso vergleichen wie Zahlen:
passwort = "katze42"
if passwort == "katze42":
print("Willkommen zurück")
else:
print("Falsches Passwort")Das gibt Folgendes aus:
Willkommen zurückZwei Texte sind nur gleich, wenn sie genau übereinstimmen, Zeichen für Zeichen. Groß- und Kleinbuchstaben sind verschiedene Zeichen, deshalb ist "Anna" == "anna" falsch. Auch "katze42 " mit einem Leerzeichen am Ende ist ein anderer Text. Und ein Text ist nie gleich einer Zahl: "5" == 5 ist falsch. Vergiss die Anführungszeichen um den Text nicht, mit dem du vergleichst. Ohne sie sucht Python bei passwort == katze42 nach einer Variablen namens katze42, und das Programm endet mit NameError: name 'katze42' is not defined.
So schreibst du es:
Anweisungen
- 1
Führe das Programm aus: Es endet mit einem
SyntaxError. Korrigiere die Bedingung so, dass sielandmit"Deutschland"vergleicht. Dann gibt das ProgrammLieferung in 3 Tagenaus. - 2
Ein Onlineshop bietet ab einer Bestellung von 50 kostenlosen Versand an. Schreibe ans Ende des Programms eine weitere
if-Anweisung, dieKostenloser Versandausgibt, wennbestellwertgrößer oder gleich50ist.