Skip to content

If-Else-Verzweigung

Programmieren

Mit Hilfe der If-Else-Verwzeigung können wir Code nur ausführen, wenn bestimmte Bedingungen erfüllt sind.

Wenn … dann …

Syntax

if (ohne else)

python
if bedingung:
	#if-Block

if-else

python
if bedingung:
	#if-Block
else:
	#else-Block

Wenn … dann … sonst …

if (mit elif)

eine Spezialität von Python sind die elif-Blöcke. elif steht für «else-if». Also im Sinn von «sonst wenn».

python
if bedingung1:
	#if-Block
elif bedingung2:
	#elif-Block
elif bedingung3:
	#elif-Block
...
elif bedingungX:
	#elif-Block
else
	#else-Block

Wenn … dann … sonst wenn … dann … sonst wenn … dann … sonst …

Tipp

In Python sind die if-else-Strukturen so aufgebaut:

  • zuerst muss ein if kommen (mit Bedingung)
  • dann können 0 oder mehrere elif kommen (mit Bedingung)
  • am Schluss kann ein else kommen (ohne Bedingung)

Aufgaben

Aufgabe: Zahlen beschreiben

Wir wollen schrittweise eine zufällige ganze Zahl beschreiben. Einige Dinge funktionieren, andere müssen noch ergänzt werden:

Wir definieren eine Funktion die sagt, ob die Zahl gerade ist:

python
def istGerade(zahl):
    return zahl %  2 == 0

Die nächste Funktion soll die Anzahl Stellen der Zahl liefern. Implementiere sie!

python
def anzahlStellen(zahl):
    pass

Die nächste Funktion soll herausfinden, ob die Zahl eine Primzahl ist. Implementiere sie!

python
def istPrimzahl(zahl):
    pass

Die nächste Funktion verwendet verwendet die obigen Funktionen um eine Zahl zu beschreiben. Sie muss ergänzt werden!

python
def beschreibe(zahl):
    beschreibung = str(x) + " ist"
    if istGerade(zahl):
        beschreibung = beschreibung + " gerade"
    else:
        beschreibung = beschreibung + " ungerade"
    return beschreibung

Nun werden 20 zufällige Zahlen generiert und durch unsere Funktionen beschrieben:

python
from random import randint

i = 0
while i < 20:
    x = randint(0,200)
    print(beschreibe(x))
    i = i + 1

Was könnte man sonst noch herausfinden? Definiere weitere Funktionen und verwende diese in der Funktion beschreibe().

Lösung: Zahlen beschreiben
python
from random import randint

def istGerade(zahl):
    return zahl %  2 == 0

def anzahlStellen(zahl):
    return len(str(zahl))

def istPrimzahl(zahl):
    if zahl%2 == 0:
        return False
    for i in range(3,zahl//2, 2):
        if zahl%i == 0:
            return False
    return True

def beschreibe(zahl):
    beschreibung = str(x) + " ist"
    if istGerade(zahl):
        beschreibung = beschreibung + " gerade"
    else:
        beschreibung = beschreibung + " ungerade"
    stellen = anzahlStellen(zahl)
    if stellen == 1:
        beschreibung = beschreibung + ", hat eine Stelle"
    else:
        beschreibung = beschreibung + ", hat " + str(stellen) + " Stellen"
    if istPrimzahl(zahl):
        beschreibung = beschreibung + " und ist eine Primzahl"
    return beschreibung

i = 0
while i < 20:
    x = randint(0,200)
    print(beschreibe(x))
    i = i + 1

Gymnasium Kirchenfeld, fts & ros