veröffentlicht am: 09.06.2020 zuletzt aktualisiert am: 02.02.2023
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.
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.
Der Satz „Sam kann sich Schokolade kaufen“ wird ausgegeben, weil „Ja“ eingegeben wurde. Die Frage ist nun, was passiert, wenn „Nein“ eingegeben wird?
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.
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 ")
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.
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.
Für die Eingabe „Nein“, wird „Heute keine Schokolade für Sam“ ausgegeben.
Jetzt probieren wir mal aus, was passiert, wenn wir weder „Ja“, noch „Nein“, eingeben.
Es wird nichts passieren, da keine unserer Bedingungen unsere Eingabe erwartet.
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.
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.
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.
So funktionieren geschachtelte if-Anweisung in Python.
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.
😩 Gelangweilt von den Udemy & YouTube-Tutorials?!
Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.
"Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."
- Lennart Sparbier
100% kostenlos registrieren · keine Kreditkarte notwendig
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig