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 imif
nicht verwendet werden. *!=
: Ungleichheit. *<
,⇐
,>=
,>
: Kleiner, kleiner gleich, grösser gleich, grösser. Bedingungen können negiert und verknüpft werden: *not
: Negation. Z.B. istif a!=b:
das Gleiche wieif not (a==b):
*and
: Logisch und. Ergibt genau dannTrue
, wenn beide BedingungenTrue
sind. Z.B.if a==b and b==c:
*or
: Logisch oder. Ergibt genau dannTrue
, wenn eine der beiden oder beide Bedingungen wahr sind. Z.B.if a==b or b==c:
</WRAP>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).
<WARP todo> 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 durchbuzz
ersetzt und jene, die sowohl durch 3 als auch durch 5 teilbar sind durchfizz buzz
ersetzt. <hidden Korrekte Ausgabe bis 30> <code text> 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 </code> </hidden> </WRAP> ===== Lösungsvorschläge ===== <code python> 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) </code>
- lehrkraefte/blc/informatik/glf20/programmieren/selektion.1602659542.txt.gz
- Last modified: 2020/10/14 09:12
- by Ivo Blöchliger