Python IF Then Abfrage
Du hast bereits ein wenig getestet und dich durch andere Beispiele gewühlt, fragst dich aber noch immer was eigentlich diese komischen Python IF THEN Abfragen so sind?!Wozu man sie benötigt oder wie man diese eigentlich anwendet?!Dann ließ weiter und du wirst deine Fragen beantworten können.
DarkWolfCave.de
Python Allgemein
Python IF THEN Abfrage
Grundsätzlich kannst du mit einer IF THEN Abfrage eine Bedingung prüfen, und dann entscheiden, wie bzw. welcher Code ausgeführt werden soll. Ein praktisches Beispiel wäre unter anderem den Status einer Webseite auszulesen, und dann entsprechend anzuzeigen, ob diese erreichbar ist oder nicht. Du könntest auch einfach die aktuelle Uhrzeit auslesen und deinen Besucher/User je nach Tageszeit, einen guten Morgen oder schönen Abend wünschen. Schauen wir uns aber erst einmal den generellen Aufbau einer solchen Python IF THEN Abfrage an.
Der Aufbau
Wir fangen ganz einfach mit einer Prüflogik an. Hier wird lediglich geschaut, ob eine festgelegte Zahl einer definierten Bedingung entspricht. Wie in Python üblich, ist das Einrücken des Codes, nach der IF Anweisung zwingend erforderlich. Ansonsten würde der Code nicht funktionieren. Denn durch dieses weiß Python, dass der folgende Code zu der Bedingung gehört.
Ein kleines Beispiel - dafür erstelle dir einfach eine neue Datei (zahl.py) - diese kannst du danach einfach mit python3 zahl.py starten:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Wir wollen wissen ob die festgelegte Zahl kleiner, gleich oder größer als eine bestimmte andere Zahl ist
zahl = 40
if zahl < 5:
print('Die Zahl ist kleiner als 5')
elif zahl == 5:
print('Super! Die Zahl ist gleich 5')
else:
print('Öhm.. auf jeden Fall ist die Zahl größer als 5')
Verändere ruhig den Wert hinter der Variablezahl = 40. Speichere und starte das Script erneut. So siehst du am besten was genau passiert. Zur Erklärung ein paar Zeilen. Mit der Variable zahl legen wir einen Wert in unserem Python Script fest. Im weiteren Verlauf prüft die IF Anweisung diese Variable auf einen bestimmten Zustand.
- if zahl
Zuerst wollen wir wissen ob zahl kleiner (<) als 5 ist. Python vergleicht jetzt den Inhalt beider Werte. Also die Variable zahl mit der Ziffer 5 . Falls dies zutrifft (true ist), wird der eingerückte Code ausgeführt und du kannst auf deinem Bildschirm dann “Die Zahl ist kleiner als 5” lesen.
- elif zahl == 5:
Sollte die erste Prüfung nicht zutreffen (also false ergeben), wird der eingerückte Code NICHT ausgeführt und Python springt zur elif Zeile. In dieser prüft Python, ob die Variable gleich (==) 5 ist.
Hier ist es wichtig zu verstehen, wo der Unterschied zwischen einem einzelnen Gleichheitszeichen (=) und einem doppelten Gleichheitszeichen (==) besteht. Wie du bei *zahl = 40 *sehen kannst, wird hier nur ein einzelnes (=) genutzt. Damit sagen wir, dass wir der Variable zahl den Wert hinter dem Gleichheitszeichen (=) zuweisen wollen.
Bei elif zahl == 5 wollen wir aber nichts zuweisen, sondern vergleichen. Und dafür nutzen wir die beiden Gleichheitszeichen (==). Sollte diese Bedingung erfüllt sein (true), sagen wir Python: verarbeite den eingerückten Code und gib “Super! Die Zahl ist gleich 5” aus.
- else:
Die “Tante” else trifft immer dann zu, wenn alle Bedingungen zuvor nicht erfüllt wurden. In diesem Fall wird der eingerückte Code ausgeführt, wenn die zahl nicht kleiner als**(<) 5** und auch nicht gleich (==) 5 ist. Python würde in diesem Fall dann den Text “Öhm.. auf jeden Fall ist die Zahl größer als 5” auf deinen Bildschirm befördern.
Das Ganze nochmal in einfach ausgedrückt:
- Wenn die Zahl kleiner (<) 5 ist - sag: Die Zahl ist kleiner als 5
- Ist sie genau (==) 5 - sag: Super! Die Zahl ist gleich 5
- Ist sie irgendwas anderes (else) dann - sag: Öhm.. auf jeden Fall ist die Zahl größer als 5
AND / OR Verknüpfung
Vergleichs - Operatoren in Python
| == | gleich |
|---|---|
| != | nicht gleich |
| < | kleiner als |
| > | größer als |
| <= | kleiner oder gleich |
| >= | größer oder gleich |
Beispiel aus der Praxis
Python IF THEN Abfrage Beispiel aus der Praxis
Du möchtest dir lieber mal ein praktisches Beispiel ansehen, in dem ich eine Python IF THEN Abfrage nutze? Kein Problem. Schau dir dieses Script an:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#***************
#***Name: check_site.py***
#*****DarkWolfCave.de*****
#***************
import requests
import sys
def check_site(url):
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'}
try:
r = requests.get(url,headers=headers,timeout=3)
if r.status_code != 200:
rstat="Seite nicht erreichbar, Zugriff verweigert oder LogIn notwendig. StatusCode:"
return rstat, r.status_code
else:
rstat='Seite erreichbar. StatusCode:'
return rstat, r.status_code
except requests.exceptions.RequestException as e:
return 'Timeout? Fehlermeldung: ',SystemExit(e)
text,code = check_site(sys.argv[1])
print (text,code)
Kleines Python Quiz
Das Grundsätzliche weißt du jetzt zu den Python IF THEN Abfragen. Wenn du möchtest, dann schaue dir die folgenden kleinen Aufgaben an und versuche sie alleine zu lösen.
Wo ist der Fehler?!
Im folgenden Script hat sich ein Fehler eingeschlichen. Wirst du ihn im Text finden? Ansonsten führe ihn in Python aus…
#!/usr/bin/python3
# -*- coding: utf-8 -*-
zahl = 100
if zahl <= 5:
print('Die Zahl ist kleiner oder gleich 5')
elif zahl = 100:
print('Super! Die Zahl ist gleich 100')
Solltest du dieses Script in Python gestartet haben, wird es dir der Interpreter schon direkt gezeigt haben, was hier falsch ist. Es müsste in etwas so aussehen:
File “zahl.py”, line 6 elif zahl = 100: ^ SyntaxError: invalid syntax
Und genau dort liegt der Fehler. Wir versuchen bei der Zeile mit elif zahl = 100: der Variable zahl einen Wert zuzuweisen. Dies funktioniert im Zusammenhang mit elif aber nicht und wäre ohnehin falsch.
Richtig wäre gewesen elif zahl == 100:
Zahl ist NICHT 100
Im nächsten kleinen Script möchten wir einen Text angezeigt bekommen, sobald die Variable zahl NICHT 100 ist. Die XXX stehen als Platzhalter und müssen ersetzt werden. Ein kleiner Tipp - etwas weiter hochscrollen und du wirst fündig. Außerdem könntest du noch etwas hinzufügen, was angezeigt wird, sobald der Wert in der Variable zahl 100 ist.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
zahl = 99
if zahl XXX :
print('Die Zahl ist NICHT 100')
Der richtige Vergleichs-Operator wäre hier != gewesen. Also die Zeile komplett müsste so lauten: if zahl != 100 :
Jetzt würdest du beim ausführen des Scriptes die Meldung “Die Zahl ist nicht 100” erhalten.
Bei allen anderen Werten hingegen blieb die Rückmeldung leer…
Um dies zu ändern könntest du direkt else: nutzen, da alles was bei der ersten if Bedingung nicht true zurück gibt, nur noch 100 sein kann. Ein Beispiel dafür: (immer auf das Einrücken achten)
#!/usr/bin/python3
# -*- coding: utf-8 -*-
zahl = 99
if zahl != 100 :
print('Die Zahl ist NICHT 100')
else:
print('Die Zahl ist 100')
Kommentare