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 % - /