Entscheidungen treffen · Übung
Vergleiche Werte
In der vorherigen Lektion hast du mit < gefragt, ob eine Zahl kleiner als eine andere ist. Python bietet sechs Vergleichsoperatoren für genaue Fragen zu Werten.
Jeder Vergleich ist ein Ausdruck. Python wertet ihn aus und erzeugt entweder True oder False.
Sechs Vergleichsoperatoren
| Operator | Gestellte Frage |
|---|---|
== | Sind diese Werte gleich? |
!= | Sind diese Werte ungleich? |
< | Ist der linke Wert kleiner als der rechte? |
<= | Ist der linke Wert kleiner oder gleich dem rechten? |
> | Ist der linke Wert größer als der rechte? |
>= | Ist der linke Wert größer oder gleich dem rechten? |
Die Reihenfolge der Zeichen in <= und >= ist wichtig. Schreibe zuerst das Kleiner- oder Größerzeichen und danach das Gleichheitszeichen.
Führe alle sechs Vergleiche aus:
Ändere value und führe das Beispiel erneut aus. Jede Zeile stellt ihre eigene Frage zum aktuellen Wert.
Zuweisung und Gleichheit unterscheiden sich
Ein einzelnes Gleichheitszeichen weist einen Wert zu:
score = 8
Lies das als „Weise score den Wert 8 zu“. Es ändert, worauf die Variable verweist.
Zwei Gleichheitszeichen vergleichen Werte:
score == 8
Lies das als „Ist der aktuelle Wert von score gleich 8?“ Es erzeugt einen booleschen Wert und verändert score nicht.
Dieses Beispiel zeigt beide Operationen:
Die erste Zeile weist einen Wert zu. Die zweite vergleicht und weist dann das Vergleichsergebnis matches_target zu.
Python braucht beide Operatoren, weil einen Wert zuzuweisen und nach einem Wert zu fragen unterschiedliche Aufgaben sind.
Grenzen sind wichtig
An einer Grenze ist der Unterschied zwischen > und >= entscheidend.
Der erste Vergleich ist False, weil 18 nicht größer als 18 ist. Der zweite ist True, weil „größer oder gleich“ den Grenzwert selbst einschließt.
Derselbe Unterschied gilt für < und <=. Formuliere die Regel in Worten, bevor du einen Operator wählst. Heißt sie „mindestens 18“, verwende >= 18. Heißt sie „jünger als 18“, verwende < 18.
Auch Strings können gleich sein
Vergleiche Strings mit == und !=. Python vergleicht ihre Zeichen exakt, einschließlich Groß- und Kleinschreibung sowie Leerzeichen.
Diese Strings sind ungleich, weil das große M und das kleine m verschiedene Zeichen sind. Du weißt bereits, wie du .strip() und .lower() verwendest, wenn ein Programm umgebende Leerzeichen oder die Groß- und Kleinschreibung ignorieren soll. Das wenden wir später im Kapitel auf Benutzereingaben an.
Welche Zeile fragt, ob tickets aktuell den Wert 12 enthält?
Was gibt dieser Code aus?
stock = 5
print(stock <= 5)Speichere die Antwort, wenn du sie brauchst
Eine verständlich benannte boolesche Variable kann eine spätere Entscheidung lesbarer machen:
Der Variablenname has_space beschreibt die Frage, die der Vergleich beantwortet. In der Übung erstellst du mehrere solche Namen aus festen Daten. Die nächste Lektion verwendet diese booleschen Ergebnisse, um zu entscheiden, ob Anweisungen ausgeführt werden sollen.
Aufgabe
Erstelle vier boolesche Werte aus den festen Veranstaltungsdaten.
Setze
has_space, indem duregisteredmitcapacityvergleichst.Setze
old_enough, indem du prüfst, obvisitor_agemindestensminimum_agebeträgt.Setze
name_matches, indem duentered_nameundevent_nameauf Gleichheit vergleichst.Setze
at_capacity, indem du prüfst, obregisteredgleichcapacityist.
Lass die vorgegebenen Daten und die vier Ausgabeaufrufe unverändert. Gib ab, wenn die Übersicht in jeder Zeile das richtige boolesche Ergebnis meldet.