If Abfragen und boolesche Verknüpfungen AND, OR, NOT ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pstein
User
Beiträge: 2
Registriert: Montag 26. Juni 2017, 15:42

Sorry für die Anfägerfrage, aber wie kann man etwas komplexere IF Abfragen mit AND, OR, NOT komponieren?

Angenommen ich will folgende IF Abfrage haben:

IF (var1==12 OR string2=="karl") AND ((var3==333) and NOT (string4=="peter")) .......

Wie kann ich so etwas in Python formulieren?

Danke
Peter
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mal abgesehen von der großschreibung genau so? Hast du mal in die Dokumentation geschaut?
BlackJack

@pstein: *Fast* genau so. Du musst jetzt nur noch in der Dokumentation nachlesen wie die boole'schen Operatoren in Python ausgedrückt werden. Das Tutorial in der Python-Dokumentation durchzuarbeiten wäre wahrscheinlich auch eine sinnvolle Option.

Edit: ``NOT (string4=="peter")`` würde man aber eher als ``string4 != 'peter'`` ausdrücken.
Benutzeravatar
Cytzix
User
Beiträge: 9
Registriert: Dienstag 27. Juni 2017, 21:40

pstein hat geschrieben: Wie kann ich so etwas in Python formulieren?

var1 = 15
str2 = "karl"
var3 = 333
str4 = "Heinz"

if var1 == 12 or str2 == "karl" and var3 == 333 and str4 is not "peter":
print("yes") #hier bitte einrücken
else:
print("noooo") #hier bitte einrücken
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Cytzix: Klammern sind nicht nur Deko, sondern haben eine wichtige Funktion. »is not« ist der falsche Vergleich, denn dabei wird nur geprüft, dass die beiden Operanden nicht exakt das selbe Objekt sind, was man bei Strings normalerweise nicht wissen will.

Code: Alles auswählen

>>> str4 = "Peter"
>>> str4 is not "Peter"
False
>>> str4 = "Pet"
>>> str4 += "er"
>>> str4
'Peter'
>>> str4 is not "Peter"
True
Benutzeravatar
Cytzix
User
Beiträge: 9
Registriert: Dienstag 27. Juni 2017, 21:40

@Sirius: Tatsache! Thx. Habe ich auch was gelernt.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Cytzix hat geschrieben:@Sirius: Tatsache! Thx. Habe ich auch was gelernt.
@Cytzix: es heißt richtig: str4 != 'Peter'
Antworten