If: Selektion, Bedingte Ausführung
Testen Sie folgendes Programm
w = -5 print("Die Wurzel aus %f ist %f" % (w, w**0.5))
Anstatt einfach mit einem Fehler abzubrechen, könnte man vorher überprüfen, ob das Sinn macht:
# -*- coding: utf-8 -*- # Das ist ein Kommentar. Die obige Zeile erlaubt es # Umlaute ä, ö, ü in Kommentare zu schreiben. Sonst geht das in TigerJython aber nicht. w = float(raw_input("Zahl = ")) # Testen, ob die Wurzel überhaupt gezogen werden kann if (w>=0): print("Die Wurzel aus %f ist ungefähr %f" % (w, w**0.5)) else: print("Keine Wurzel aus negativen Zahlen, sorry")
Beachten Sie folgende Punkte:
- raw_input liefert eine Zeichenkette vom Benutzer. Diese muss erst noch mit float in eine Zahl umgewandelt werden.
- Am Ende der Zeilen mit if und else steht ein Doppelpunkt
- Die Zeilen danach sind eingrückt. Es können mehrere eingrückte Zeilen vorkommen.
Vergleichsoperatoren
==(zwei! Gleichheitszeichen) zur Überprüfung der Gleichheit- das einfache Gleichheitszeichen wird für die Zuweisung (miss)gebraucht
<,<=,>=,>Kleiner, Kleiner gleich, grösser gleich, grösser!=ungleich
Logische Verknüpfungen in Python
and(beides, sowohl als auch)or(das eine, das andere oder beides)not(nicht)!=(für XOR, wenn das mal jemand braucht)
Hinweis: Das and hat eine höhere Priorität als das or (wie das * eine höhere Priorität hat als das +).
So erhält man True für den Ausdruck True or True and False weil zuerst das and ausgewertet wird.
(True or True) and False ergibt dann aber False.
Wahrheitswerte True und False
Das Ergebnis eines Vergleichs ist immer True oder False.
Man beachte folgenden Code:
ok = True # Overkill: (ok==True ergibt einfach wieder True, und der folgende Block im if wird ausgeführt if ok==True: print("Alles ok") # Das reicht if ok: print("Viel schlanker und einfacher zu lesen und schreiben")
Aufgaben
- Schreiben Sie ein Programm, das die Temperatur vom Benutzer erfragt und dann mindestens drei Bereiche ausgibt, wie z.B. “kalt, warm, heiss”.
- Schreiben Sie ein Programm, das die quadratische Gleichung $ax^2+bx+c=0$ löst, wenn die Werte für $a$, $b$, $c$ am Programmbeginn gegeben sind. Unterscheiden Sie dazu die Fälle, je nach Anzahl der Lösungen
Quizz
True oder False?
Achtung: Aufgaben 4 und 5 können ohne Rechnen gelöst werden!
2>3
7>9 or 9>7
not(True and (False or True))
234*345<321*251 and False
234*345<321*251 or True
You Scored % - /