Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Python #6: Bedingte Anweisungen

Posted on 3. Dezember 20181. Mai 2023 by Stefan Draeger

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“.

if 1 < 5:
    print("1 ist kleiner als 5")

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ückliefert erfolgt die Ausgabe:

1 ist kleiner als 5

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.

zahl1 = 1
zahl2 = 3

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.

result = zahl1 < zahl2
if result:
    print("Zahl1 ist kleiner als Zahl2!")

größer >

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

zahl1 = 1
zahl2 = 3
result = zahl1 > zahl2
if result:
    print("Zahl1 ist größer als Zahl2!")

gleich ==

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

result = zahl1 == zahl2
if result:
    print("Zahl1 ist gleich Zahl2!")

ungleich !=

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

result = zahl1 != zahl2
if result:
    print("Zahl1 ist ungleich Zahl2!")

kleiner gleich <=

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

result = zahl1 <= zahl2
if result:
    print("Zahl1 ist kleiner gleich Zahl2!")

größer gleich >=

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

result = zahl1 >= zahl2
if result:
    print("Zahl1 ist groesser gleich Zahl2!")

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:

zahl1 = 1
zahl2 = 3
result = zahl1 > zahl2
if result:
    print("Zahl1 ist groesser als Zahl2!")
result = zahl1 <= zahl2
if result:
    print("Zahl1 ist nicht groesser als Zahl2!")

Die Ausgabe ist:

Zahl1 ist nicht groesser als Zahl2!

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

if result:
    print("Zahl1 ist groesser als Zahl2!")
else:
    print("Zahl1 ist nicht groesser als Zahl2!")

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.

zahl1 = 2
if zahl1 == 1:
    print("Zahl1 ist gleich 1!")
elif zahl1 == 2:
    print("Zahl1 ist gleich 2!")
elif zahl1 == 3:
    print("Zahl1 ist gleich 3!")
elif zahl1 == 4:
    print("Zahl1 ist gleich 4!")

Die Ausgabe aus diesem Beispiel ist:

Zahl1 ist gleich 2!

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:

ergebnis = ""
zahl1 = 4
if zahl1 == 1:
    ergebnis = "Zahl1 ist gleich 1!"
else:
    ergebnis = "Zahl1 ist ungleich 2!"

print(ergebnis)

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

zahl1 = 4
ergebnis = "Zahl1 ist gleich 1!" if (zahl1 == 1)  else "Zahl1 ist ungleich 2!"
print(ergebnis)

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

zahl1 = 2
if zahl1 > 1 and zahl1 < 3:
        print("Die Variable Zahl1 enthaelt den Wert 2")

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ückliefern damit die Ausgabe erfolgt.

zahl1 = 2
if zahl1 == 2  or (zahl1 > 10 and zahl1 < 30):
    print("Die Variable Zahl1 enthaelt den Wert 2")

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 so weit 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:

pflanzen = ["Rose", "Tulpe", "Geranie", "Veilchen"]

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.

pflanzen = ["Rose", "Tulpe", "Geranie", "Veilchen"]
if "Tulpe" in pflanzen:
    print("Die Tulpe ist ein Element der Liste.")
else:
    print("Die Tulpe ist kein Element der Liste.")

Die Ausgabe ist:

Die Tulpe ist ein Element der Liste.

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

satz = "Hallo dies ist ein Test!"

if "dies" in satz:
    print("Das gesuchte Wort 'dies' kommt in dem Satz vor!")

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.

alter = 12
if not alter > 16:
    print("False")

Die Ausgabe ist:

False

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:

if True and True:
    print("True and True")

if False and False:
    print("False and False")
    
if True and False:
    print("True and False")
    
if False and True:
    print("False and True")

if True or True:
    print("True or True")

if False or False:
    print("False or False")
    
if True or False:
    print("True or False")
    
if False or True:
    print("False or true")

Welche Ausgabe wird beim Ausführen erscheinen?

Richtige Antwort:

True and True
True or True
True or False
False or true

Schreibe einen Kommentar Antworten abbrechen

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

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}