Programm: Eintrittsprüfung
Neue Aufgabe: Nehmen wir an, jemand möchte herausfinden, ob er einen Film im Kino anschauen darf. Es gibt eine FSK-Freigabe (fsk) und das Alter des Kindes (alter).
alter = input("Wie alt bist du?")
fsk = input("Ab wann ist der Film freigegeben?")
Wie prüft man nun, ob der Benutzer in den Film gehen darf? Klar, oder?
if (alter >= fsk):
print "Du darfst in den Film gehen."
else:
print "Du darfst leider nicht in den Film gehen."
Nehmen wir aber jetzt an, man dürfte, egal in welchem Alter, in jeden Film gehen, solange ein Erwachsener dabei ist (das stimmt in Wirklichkeit nicht, aber wir nehmen es mal an für diese Übung).
Dann würde das Programm so aussehen:
alter = input("Wie alt bist du?")
fsk = input("Ab wann ist der Film freigegeben?")
erwachsener = input("Ist ein Erwachsener dabei (1)? Oder nicht (0)?")
if (alter >= fsk) or erwachsener:
print "Du darfst in den Film gehen."
else:
print "Du darfst leider nicht in den Film gehen."
Solange eine der beiden Bedingungen erfüllt ist (Alter stimmt oder Erwachsener ist dabei) wird der Film erlaubt. Ansonsten (wenn beides nicht zutrifft) eben nicht. Achte darauf, dass es hier nicht nötig ist, erwachsener == 1 abzufragen, denn 1 entspricht ja True – und somit reicht es aus, die Variable erwachsener als Wahrheitswert abzufragen, da sie nur 0 (False) oder 1 (True) sein kann.
Und dann kann man noch zwei Zeilen hinzufügen:
if (alter >= fsk) and erwachsener:
print "Du brauchst den Erwachsenen nicht mitnehmen.")
Und zur Verdeutlichung noch mal eine Abfrage dazu:
if (not (alter >= fsk)) and erwachsener:
print "Der Erwachsene muss aber auf jeden Fall mitkommen."
Damit hast du ein Beispiel für alle Verknüpfungen mit AND, OR oder NOT.
Schau dir das Programm genau an, probiere es mit verschiedenen Eingaben durch, und versuche zu verstehen, wie es funktioniert. Wenn eine der beiden Bedingungen (Alter größer oder gleich fsk oder Erwachsener ist dabei) erfüllt ist, darf der Fragende den Film sehen. Wenn das nicht der Fall ist, darf er den Film auf jeden Fall nicht sehen.
Dann wird noch geprüft, ob vielleicht das Alter stimmt und ein Erwachsener dabei ist. Der wäre dann nämlich nicht nötig.
Und die letzte Abfrage prüft, ob das Alter zu niedrig ist und ein Erwachsener dabei ist. Dann ist der Erwachsene auf jeden Fall nötig.
Die Klammern sind dabei eine Hilfe, weil sie klar zeigen, worauf sich das and oder das or oder das not bezieht. Wenn du Bedingungen mit and, or, not verknüpfst, solltest du die Bedingungen selbst immer in Klammern setzen, um Unübersichtlichkeit oder falsche Ergebnisse zu vermeiden.