Python #6: Bedingte Anweisungen

03In diesem Kapitel möchte ich nun die Bedingten Anweisungen und die dazu benötigten Operatoren vorstellen.

Eine Bedingte Anweisung benötigen wir um in unserem Quellcode eine Abfrage auf einen bestimmten Datenstatus vorzunehmen.
D.h. wenn wir zwei Werte miteinander vergleichen möchten so benötigen wir eine Bedingte Anweisung und zusätzlich Operatoren.

Eine solche Bedingte Anweisung beginnt immer mit einem „if“ und prüft auf einen Booleschen Wert. Ein Boolescher Wert kann genau zwei Status haben True/False.
Der Status „True“ steht für „Wahr“ und „False“ für „Falsch“. 

Was haben wir hier geschrieben?

Zeile #1: Abfrage ob 1 kleiner als 5 ist
Es wird geprüft ob die Zahl „1“ kleiner als „5“ ist, da diese Operation den Wert „True“ zurück liefert erfolgt die Ausgabe:

Zeile #2: Ausgabe bzw. weitere Verarbeitung 
Damit die Ausgabe bzw. die weitere Verarbeitung bei einem Ergebnis der Abfrage von „True“ erfolgt muss die nächste Zeile mit einem Tabulator eingerückt werden. Wenn diese Zeile nicht eingerückt wird, erfolgt keine besondere Verarbeitung und die Zeile wird immer ausgegeben.

Operatoren

Nehmen wir an wir wollen zwei Zahlen miteinander vergleichen.

Dazu können wir nun für die verschiedenen Vergleiche, folgende Operatoren verwenden.

kleiner  <

Wenn geprüft werden soll ob die Zahl1 kleiner als die Zahl2 ist.

größer >

Wenn geprüft werden soll ob die Zahl1 größer als die Zahl2 ist.

gleich ==

Wenn geprüft werden soll ob beide Zahlen gleich sind.

ungleich !=

Wenn geprüft werden soll ob die Zahl1 ungleich der Zahl2 ist.

kleiner gleich <=

Wenn geprüft werden soll ob die Zahl1 kleiner gleich der der Zahl2 ist d.h. die Zahl kann kleiner sein oder gleich der Zahl2 sein.

größer gleich >=

Wenn geprüft werden soll ob die Zahl1 größer gleich der der Zahl2 ist d.h. die Zahl kann größer sein oder gleich der Zahl2 sein.

If Abfragen

Nun haben wir bereits einige If Abfragen geschrieben und ausgeführt. Jedoch haben wir immer nur genau einen Status abgefragt nämlich „True“.
Was ist wenn wir auf beide möglichen Werte reagieren wollen?
 Wir könnten nun folgendes schreiben:

Die Ausgabe ist:

Es gibt hier nun zwei Abfragen, dieses kann man mit einen einfachen zusätzlichen Operator „else“ verkürzen.

Der Befehl „else“ bewirkt das, wenn das Ergebnis in der If abfrage falsch ist der Zweig ausgeführt wird. (Die Ausgabe bleibt gleich.)
Wenn man jedoch mit dem gleichheits Operator arbeitet kann man prüfen ob eine Zahl gleich einer anderen ist hier klappt dieses nur bedingt mit dem Operator „else“.

ElIf Operator

Für diesen Fall nutzt man den Operator „elif“, dieser bewirkt das wenn die erste Abfrage „True“ ist keine weiteren Abfragen mit dem Operator „Elif“ ausgeführt werden.

Die Ausgabe aus diesem Beispiel ist:

Die Abfragen werden von oben nach unten durchlaufen und wenn das Ergebnis „True“ ist dann wird der Code ausführt und keine weiteren Abfragen geprüft.

Es geht kürzer

Gegeben sei folgender Code:

Im Grund ist daran nix auszusetzen, jedoch geht dieses noch kürzer.

Verketten mit and & or

Wenn man nun eine Variable hat welche mehrere gültige Status haben kann, dann gibt es die Möglichkeit mit „and“ oder „or“ diese zu verknüpfen und somit verschachtelte if Abfragen zu gestalten.

and

Was haben wir geschrieben?

Zeile #1: erzeugen der Variable „zahl1“ und zuweisen des ganzzahligen Wertes 2
Zeile #2: abfragen ob der wert der Variable „zahl1“ größer als 1 ist UND kleiner als 3.

Hier liegt das Augenmerk auf das UND, denn der gesamte Ausdruck ergibt nur True wenn beide Abfragen „zahl1 > 1“ und „zahl1 < 3“ jeweils True ergeben.
Wenn nur einer von beiden ein False (oder sogar beide) ergibt dann wird keine Ausgabe erfolgen.

or

Die zweite Möglichkeit ist mit dem Operator „or“, hier muss nur einer der beiden Ausdrücke ein True zurück liefern damit die Ausgabe erfolgt.

Was haben wir geschrieben?

Zeile #1: erzeugen der Variable „zahl1“ und zuweisen des ganzzahligen Wertes 2
Zeile #2: hier sind nun 2 Ausdrücke,
der erste Ausdruck prüft ob die Variable den Wert 2 enthält,
der zweite Ausdruck ist durch eine Klammer erneut verschachtelt und enthält wiederum zwei weitere Ausdrücke,
hier findet sich eine Abfrage mit „and“ ob die Zahl größer 10 und kleiner 30 ist. Dieser Ausdruck ist jedoch False was bei einer oder Verknüpfung nicht schlimm ist soweit mindestens ein Ausdruck True liefert.

prüfen mit dem Operator „in“

Mit dem Operator in kann man prüfen ob ein Element in einer Liste oder String vorhanden ist. 
Nehmen wir folgende Liste mit Pflanzen:

Wollen wir prüfen ob ein bestimmtes Element in dieser Liste vorkommt so prüfen wir dieses mit dem Operator „in“. Der Ausdruck liefert immer ein Booleschen Wert zurück somit kann man diesen dann in eine if Abfrage stecken.

Die Ausgabe ist:

Den Operator „in“ kann man nicht nur auf Listen anwenden sondern auch auf Strings. 

Ausdruck negieren mit dem Operator „not“

Es gibt fälle da muss man einen Ausdruck negieren, dann nutzt man den Operator „not“ dieser wird vor den Ausdruck gesetzt.
Der Interpreter wird erst den Ausdruck auswerten und zum Schluss das Ergebnis negieren.

Die Ausgabe ist: 

Was haben wir geschrieben?

Zeile #1: Variable „alter“ erzeugt und den ganzzahligen Wert 12 zugewiesen
Zeile #2: Abfragen ob die Variable „alter“ einen Wert größer als 16 enthält, jedoch wird das Ergebnis negiert, somit
Zeile #3: eventuelle Ausgabe von „False“

Boolesche Vergleiche

Schauen wir uns einmal die Booleschen Vergleiche genau an:

Welche Ausgabe wird beim ausführen erscheinen?

richtige Antwort:

 

 

Ein Gedanke zu „Python #6: Bedingte Anweisungen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.