Du liest:
Alles über Python if, elif & else (mit Codebeispielen)

Alles über Python if, elif & else (mit Codebeispielen)

von Pero
09.06.2020
Entscheidungen in Python: if, elif und else

Entscheidungen zu treffen, ist eine wichtige Vorgehensweise in der Programmierung. Jede Programmiersprache bietet die Möglichkeit Entscheidungen zu treffen. Dafür steht uns ins in Python unter anderem if, elif und else zur Verfügung. Allerdings stellt sich die Frage, warum dieser Vorgang so wichtig ist.

Nehmen wir einfach mal ein Beispiel, um das Problem zu verstehen.

Angenommen, Sam steht vor dem Schokoladenregal im Supermarkt. Im Regal befinden sich zwei Schokoladensorten – eine Dunkle und eine Weiße. Die dunkle Schokolade kostet 1 Euro, während die weiße Schokolade für 2 Euro zu haben ist. Sam bittet seine Mutter um Geld. Aus dieser Situation ergeben sich drei verschiedene Szenarien:

1. Sam bekommt von seiner Mutter 1 Euro und kann sich die dunkle Schokolade kaufen.
2. Sam bekommt von seiner Mutter 2 Euro und kann sich die weiße Schokolade kaufen.
3. Sam bekommt von seiner Mutter kein Geld.

Wenn Sam von seiner Mutter kein Geld bekommt, dann kann er keine Entscheidung treffen. Erhält er allerdings Geld von seiner Mutter, muss Sam sich entscheiden, was er mit dem Geld kaufen möchte.

In ähnlicher Weise können solche Situationen auch während der Programmierung auftreten, wo wir einige Entscheidungen treffen müssen, um weiter voranzukommen. Jede wichtige Programmiersprache nutzt sogenannte if-Anweisungen, um eine Entscheidung im Programm treffen zu können.

Grundsätzlich unterscheidet sich die if-Anweisungen in den Programmiersprachen kaum. In Python ist die Syntax dieser Anweisung allerdings etwas verschieden. In diesem Kapitel werden wir uns deshalb mit der if-Anweisung in Python beschäftigen.

Die Python If-Anweisung

Das Schlüsselwort „if“ verwenden wir, um eine if-Anweisung zu implementieren. Neben dem Schlüsselwort brauchen wir außerdem eine Bedingung für den Block. Die if-Anweisung wird dann für diese Bedingung funktionieren.

Wichtig ist, auf die spezielle Syntax von Python zu achten!

if Bedingung:
	Anweisung(s)

Bei der Bedingung muss es sich immer um einen booleschen Wert, also um einen Wahrheitswert, handeln. Wir können auch logische Operatoren in der Bedingung oder sogar eine Funktion verwenden, um unseren Wahrheitswert zu erhalten. Die Anweisung(en) innerhalb des if-Blocks werden nur ausgeführt, wenn unsere Bedingung erfüllt ist. Die Menge der Anweisungen, die wir in diesen Block schreiben ist irrelevant. Wenn die Bedingung nicht erfüllt ist, werden die Anweisungen ignoriert.

Gehen wir inhaltlich noch einmal kurz zurück und erinnern uns an das Beispiel von Sam und seiner Schokolade und versuchen, für dieses Beispiel ein Programm mit Python zu erstellen.

print("Sam fragt nach Geld...")
besitztGeld = input("Geben Sie Ja oder Nein ein.\n")

if besitztGeld == 'Ja':
	print("Sam kann sich Schokolade kaufen")

Wie im obigen Beispiel zu sehen, kann „besitzGeld“ entweder „Ja“ oder „Nein“ sein. Wenn der Wert „Ja“ ist, wird die Anweisung innerhalb des if-Blocks ausgeführt. Ist der Wert bei „Nein“ (oder einem anderen Wert) wird die Anweisung ignoriert.

Ausgabe falls Eingabe "Ja" ist.
Ausgabe falls die Eingabe „Ja“ ist.

Der Satz „Sam kann sich Schokolade kaufen“ wird ausgegeben, weil „Ja“ eingegeben wurde. Die Frage ist nun, was passiert, wenn „Nein“ eingegeben wird?

Ausgabe falls Eingabe "Nein" ist. Da keine definiert ist, ist die Ausgabe in diesem Fall leer.
Ausgabe falls die Eingabe „Nein“ ist.

Diesmal erfolgt keine Ausgabe, da die Bedingung mit dem Wert „Nein“ nicht erfüllt ist.

Grundsätzlich funktioniert so die if-Anweisung. Allerdings gibt es weitere Möglichkeiten, um in der Programmierung Entscheidungen zu treffen.

If-Anweisung mit else

Im obigen Beispiel wird „Sam kann sich Schokolade kaufen“ ausgegeben, wenn die Bedingung erfüllt ist, aber nichts wird gedruckt, wenn sie nicht erfüllt ist. In gewissen Situationen müssen wir möglicherweise eine Anweisung ausführen, auch wenn die Bedingung nicht erfüllt ist, oder? Jetzt wollen wir zum Beispiel Folgendes ausgeben: „Heute keine Schokolade für Sam“, wenn die Bedingung nicht erfüllt ist. Wie könne wir das erreichen? Eigentlich könnten wir die print-Anweisung einfach unter den if-Block schreiben. Wenn der Wert von „besitzGeld“ dann „Nein“ (oder etwas Anderes) ist, wird die Anweisung ausgeführt. Diese Herangehensweise ist allerdings nicht ganz richtig. So würde in jedem Fall „Heute keine Schokolade für Sam“ ausgegeben werden. Sogar wenn der Wert von „besitzGeld“ „Ja“ ist. Für solche Situationen kann der else-Block verwendet werden.

Der else-Block ist mit der if-Anweisung verbunden und wird nur ausgeführt, wenn die Bedingung der if-Anweisung nicht erfüllt ist. Schau dir die folgende Syntax genau an.

if Bedingung:
	Anweisung(a)
else:
	Anweisung(b)

Nun können wir den else-Block in unser Beispiel einfügen.

print("Sam fragt nach Geld...")
besitztGeld = input("Geben Sie Ja oder Nein ein\n")

if besitztGeld == 'Ja':
	print("Sam kann sich Sckokolade kaufen")
else:
	print("Heute keine Schokolade für Sam ")
Nutzung einer einfachen else Anweisung.
Ausgabe falls die Eingabe NICHT „Ja“ ist.

Wenn für den Eingabewert „Nein“ eingegeben wird, ist unsere Bedingung nicht erfüllt, und der else-Block wird ausgeführt. Der else-Block besitzt keine eigene Bedingung und wird jedes Mal ausgeführt, wenn die Bedingung der if-Anweisung nicht erfüllt ist.

Das Python else if: elif

Nehmen wir nun mal an, dass bei der Eingabe „Ja“ der Text „Sam kann sich Schokolade kaufen“ ausgegeben wird, und entsprechend „Heute keine Schokolade für Sam“, wenn die Eingabe „Nein“ lautet. Alle anderen Eingaben sollen ignoriert werden.

Dann können wir das Prinzip eines elif-Blocks nutzen. Genau wie der else-Block wird der elif-Block an eine if-Anweisung angehängt und nur ausgeführt, wenn die Bedingung der if-Anweisung nicht erfüllt ist. Im Gegensatz zum else-Block besitzt der elif-Block noch eine eigene Bedingung, die erfüllt sein muss, damit die Anweisungen im Block ausgeführt werden.

print("Sam fragt nach Geld...")
besitztGeld = input("Geben Sie Ja oder Nein ein\n")

if besitztGeld == 'Ja':
	print("Sam kann sich Sckokolade kaufen")
elif besitztGeld == 'Nein':
	print("Heute keine Schokolade für Sam ")

Für die Eingabe „Ja“, wird „Sam kann sich Schokolade kaufen“ ausgegeben.

Die Python if-Anweisung greift in diesem Falle.
Ausgabe falls die Eingabe „Ja“ ist.

Für die Eingabe „Nein“, wird „Heute keine Schokolade für Sam“ ausgegeben.

Die elif-Anweisung greift in diesem Falle.
Ausgabe falls die Eingabe „Nein“ ist.

Jetzt probieren wir mal aus, was passiert, wenn wir weder „Ja“, noch „Nein“, eingeben.

Beispielcode einer if-Anweisung, wobei die else-Anweisung greift.
Ausgabe falls die Eingabe weder „Ja“ noch „Nein“ ist.

Es wird nichts passieren, da keine unserer Bedingungen unsere Eingabe erwartet.

Python If-else-if Staffelung

Die if-else-if Staffelung ist eine gängige Methode, die bei der Programmierung verwendet wird, wenn mehrere Bedingungen vorliegen. Die Staffelung verfügt natürlich über eine if-Anweisung und, je nach Situation, eine bis mehrere elif-Anweisungen. Außerdem kann bei Bedarf ein normaler if-Block an das Ender der Staffelung gehangen werden.

Der obige Code hat jetzt drei Bedingungen und einen weiteren Block. Auf diese Weise können wir eine Wenn-Selbst-Wenn-Staffelung in Python erstellen. Es ist jedoch zu empfehlen, nur kurze Staffelungen dieser Art zu erstellen, da durch Hinzufügen weiterer elif-Blöcke ein sehr unordentlicher und sehr schwer nachvollziehbarer Code entsteht. Für den Fall, dass eine größere Staffelung aus vielen Bedingungen notwendig ist, bietet es sich an, auf den Switch-Block zurück zu greifen.

Schachtelung von if-Anweisungen

In der Programmierung können allerdings auch komplexe Situationen entstehen, bei denen eine Entscheidung von einer vorherigen abhängig ist. Wenn wir noch einmal unser Beispiel mit Sam betrachten, ist zunächst entscheidend ob er Geld besitzt. Erst danach kann er die Entscheidung treffen, welche Schokolade er wählt. So entstehen geschachtelte Bedingungen.

Betrachten wir nochmal unseren Code, in dem bis jetzt nur „Ja“ und „Nein“ die einzigen Bedingungen waren.

print("Sam fragt nach Geld...")
besitztGeld = input("Geben Sie Ja oder Nein ein\n")

if besitztGeld == 'Ja':
	print("Sam kann sich Sckokolade kaufen")
elif besitztGeld == 'Nein':
	print("Heute keine Schokolade für Sam ")

Wir können jetzt einfach noch eine if-Anweisung einfügen, die nur ausgeführt wird, wenn die Eingabe „Ja“ ist.

print("Sam fragt nach Geld...")
besitztGeld = input("Geben Sie Ja oder Nein ein\n")
mengeGeld = input("Geben Sie 1 oder 2 ein\n")

if besitztGeld == 'Ja':
	print("Sam kann sich Sckokolade kaufen")
	if mengeGeld == 1:
		print("Sam kauft sich dunkle Schokolade")
	elif mengeGeld == 2:
		print("Sam kauft sich weiße Schokolade")
elif besitztGeld == 'Nein':
	print("Heute keine Schokolade für Sam ")

Der obige Code sieht zunächst erstmal etwas komplex aus. Wir werden die neuen Zeilen allerdings Schritt für Schritt durchgehen. Jetzt haben wir eine zusätzliche Eingabe für die Geldmenge die Sam erhält. Geben wir ein das Sam Geld erhält und zusätzlich eine „1“ oder „2“ gelangen wir zu der geschachtelten if-elif-Anweisung. Diese verhält sich dann wie eine normale if-elif-Anweisung.

if mengeGeld == 1:
		print("Sam kauft sich dunkle Schokolade")
elif mengeGeld ==2:
		print("Sam kauft sich weiße Schokolade")

Führen wir das Programm aus und versuchen Sam zu helfen, seine Schokolade zu kaufen.

Ausgabe einer verschachtelten if-Anweisung
Ausgabe der verschachtelten if-Anweisungen.

So funktionieren geschachtelte if-Anweisung in Python.

Zusammenfassung: Das Python if

Mithilfe der if-Anweisung Entscheidungen zu treffen ist wirklich nicht schwer. Trotzdem ist neben genereller Aufmerksamkeit bei der Nutzung, vor allem Übung gefragt. In diesem Artikel haben wir anhand des Beispiels mit Sam gelernt, die if-Anweisungen auf reale Probleme anzuwenden. Die if-Anweisung hängt immer von einer Bedingung ab. Neben der einfachen if-Anweisung haben wir auch else- und elif-Blöcke verwendet, um unser Programm zu verbessern. Außerdem haben wir die verschachtelten und gestaffelten if-elif-Anweisungen kennengelernt.



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren