Python-Nettigkeiten: Logische Verknüpfungen

Ich habe ja gestern schon erzählt, wie angetan ich von den Logik-Strukturen in Python bin. Richtig spannend wird Logik in der Programmierung ja aber erst dann, wenn man nicht nur Wahrheit oder Unwahrheit eines Ausdrucks abfragt, sondern logische Ausdrücke miteinander verknüpft. Und auch hier hat Python ein paar Nettigkeiten zu bieten.

AND

Wie Python den bool’schen Operator AND verarbeitet an folgendem Beispiel:

ausdruckC = ausdruckA and ausdruckB
  • Wenn ausdruckA unwahr ist, wird er zurückgegeben -> ausdruckC ist unwahr, wie gewünscht
  • Wenn ausdruckA wahr ist, wird ausdruckB zurückgegeben -> falls ausdruckB wahr ist, wird ausdruckC wahr, falls nicht, nicht. Wie gewünscht.

OR

OR wird ähnlich raffiniert verarbeitet:

ausdruckC = ausdruckA or ausdruckB
  • Wenn ausdruckA wahr ist, wird er zurückgegeben -> ausdruckC ist wahr, wie gewünscht
  • Wenn ausdruckA unwahr ist, wird ausdruckB zurückgegeben -> falls ausdruckB wahr ist, wird ausdruckC wahr, falls nicht, nicht. Wie gewünscht.

Schick oder?

Man kann diese Verknüpfungen wie gewohnt verwenden, kann aber auch mit Python sehr schlanke Bedingungen formulieren. Weiterlesen

Python-Nettigkeiten: Logische Strukturen

Ich beschäftige mich in letzter Zeit ein wenig mit der Programmiersprache Python. Ich werde zwar vermutlich Java immer verbunden bleiben, aber gerade als GNOME-User, denkt man sich immer wieder:
Hach, was wäre es nett, Python zu beherrschen!

Also begann ich, ein wenig mit Python herumzuspielen und ein kleines Tool für meine Frau zu programmieren. Mal davon abgesehen, dass ich erstaunt bin, wie schnell ich “working code” mit einer Programmiersprache hervorbringen konnte, die ich zu diesem Zeitpunkt erstmals verwendete, dachte ich immer wieder: Hach, wie nett!
Einer dieser Momente war, als ich feststellte, wie schlank und unkompliziert Logikstrukturen in
Python abgebildet werden können.

Jeder Wert in Python kann als logischer Wert verwendet werden. Die bool’schen Werte true und false werden in Python also gar nicht benötigt. Logische Wahrheit wird in Python schon durch Datentypen mit Inhalt repräsentiert. z.B. 1, “Hirnbloggade”, [Listenelement], 4.5 etc.
Logische Unwahrheit wird durch quasi “leere” Werte wie z.B. None, 0, [] oder “” repräsentiert.

Das ermöglicht, dass man oft zwei Fliegen mit einer Klappe schlagen kann. Weiterlesen