lehrkraefte:blc:informatik:glf20:programmieren:selektion

This is an old revision of the document!


Selektion: if, if/else, if/elif/else

Programme sollen auf unterschiedliche Eingaben oder Zustände unterschiedliche reagieren können. Dies wird mit if und Konsorten erreicht.

Kopieren, testen und verstehen Sie folgenden Code:

# Ganze Zahl einlesen
zahl = inputInt("Bitte eine Ganzzahl:")
 
# Der Abstand um das '>'-Zeichen ist optional
# Der Doppelpunkt am Ende der if-Zeile muss stehen
# Danach wird der Code eingerückt.
if zahl > 10:
  print("Ihre Zahl ist grösser als 10")
  print("Wird nur ausgegeben, wenn die Zahl grösser als 10 ist...")
print("Das wird immer ausgegeben, nicht mehr im 'if' drin.")

Nach if folgt eine Bedingung, die True oder False ergibt. Bedingungen sind meist Vergleiche:

  • ==: Gleichheit. Achtung: Das einfache = ist eine Zuweisung und sollte im if nicht verwendet werden.
  • != Ungleichheit.
  • <, <=, >=, >: Kleiner, kleiner gleich, grösser gleich, grösser.

Bedingungen können negiert und verknüpft werden:

  • not: Negation. Z.B. ist if a!=b: das Gleiche wie if not (a==b):
  • and: Logisch und. Ergibt genau dann True, wenn beide Bedingungen True sind. Z.B. if a==b and b==c:
  • or: Logisch oder. Ergibt genau dann True, wenn eine der beiden oder beide Bedingungen wahr sind. Z.B. if a==b or b==c:

Schreiben Sie ein Programm, das eine Aussentemperatur einliest und dann die Temperatur in Worten ausgibt, z.B. “kalt”, “warm”, “heisst” oder mehr Abstufungen.

Beispiel einer Ausgabe

-8°C ist kalt.

Der Modulo-Operator % haben wir bereits bei Strings für die formatierte Ausgabe angetroffen.

Werden Zahlen mit % verknüpft, erhält man den Rest der Division. Z.B.

  • 12 % 5 ergibt 2 (weil der Rest 2 bei der Division von 10 durch 5 bleibt).
  • 14 % 2 ergibt 0 (weil die Division von 14 durch 2 aufgeht).
  • if a % 7 == 0: Überprüft, ob a durch 7 teilbar ist (d.h. den Rest 0 ergibt).

FIZZ BUZZ! Programmieren Sie ein Programm, das alle Zahlen von 1 bis 100 ausgibt, aber alle jene, die durch 3 teilbar sind durch fizz ersetzt, jene, die durch 5 teilbar sind durch buzz ersetzt und jene, die sowohl durch 3 als auch durch 5 teilbar sind durch fizz buzz ersetzt.

Verlangte Ausgabe bis 30

Verlangte Ausgabe bis 30

1
2
fizz
4
buzz
fizz
7
8
fizz
buzz
11
fizz
13
14
fizz buzz
16
17
fizz
19
buzz
fizz
22
23
fizz
buzz
26
fizz
28
29
fizz buzz

Lösungvorschläge

Lösungvorschläge

for i in range(1,101):
    if i % 3 == 0  and  i % 5 == 0:
        print("fizz buzz")
    elif i % 3 == 0:
        print("fizz")
    elif i % 5 == 0:
        print("buzz")
    else:
        print(i)
t = inputInt("Temperatur in Grad Celsius")
text  =  "%d°C ist " % t
if (t<15):    
    text += "kalt"   # eine Abkürzung für text = text + "kalt"
elif t<25:
    text += "warm"
else:
    text += "heiss"
 
print(text+".")
  • lehrkraefte/blc/informatik/glf20/programmieren/selektion.1603089740.txt.gz
  • Last modified: 2020/10/19 08:42
  • by Ivo Blöchliger