lehrkraefte:blc:informatik:ffprg1-2020:ifelse

This is an old revision of the document!


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.
  • == (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
  • and (beides, sowohl als auch)
  • or (das eine, das andere oder beides)
  • not (nicht)
  • != (für XOR, wenn das mal jemand braucht)

Das Ergebnis eines Vergleichs ist immer True oder False.

  • 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

Lösungsvorschläge

Lösungsvorschläge

temperatur.py
# -*- coding: utf-8 -*-
w = int(raw_input("Temperatur = "))
if w<0:
    print("Es ist kalt!")
elif w<10:
    print("Es ist kuehl!")
elif w<10:
    print("Es ist angenehm kuehl")
elif w<25:
    print("Angenehm warm")
else:
    print("Es ist heiss!")
quadratisch.py
# -*- coding: utf-8 -*-
a=2
b=3
c=-3
 
if a==0:
   print("Lineare Gleichung. Die Loesung ist x=%f" % (-c/b))
else:
    # Diskriminante
    d = b*b-4*a*c
    if (d<0):
        print("Keine Loesung, negative Diskriminate")
    elif d==0:  # Achtung, Vergleich mit Dezimalzahlen liefert nicht immer das gewuenschte Ergebnis!
        print("Diskriminate Null, genau eine Loesung x=%f" % (-b/(2*a)))
    else:
        d=d**0.5
        x1 = (-b+d)/(2*a)
        x2 = (-b-d)/(2*a)
        print("Zwei Loesungen. x1=%f, x2=%f" % (x1,x2))

Quizz

True oder False?

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 % - /
  • lehrkraefte/blc/informatik/ffprg1-2020/ifelse.1580220585.txt.gz
  • Last modified: 2020/01/28 15:09
  • by Ivo Blöchliger