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

GUI-Design via EEG-Analyse? Microsoft und die Hirnwellen

Anscheinend hat Microsoft für den Nachfolger von Vista einiges vor. Jedenfalls haben sie in den Staaten jetzt einen Patentantrag eingereicht, bei dem es um ein Verfahren geht, Hirnstrommessungen (EEG) auszuwerten, die bei der Bedienung von Computern vorgenommen wurden. Mit den ausgewerteten Daten will Microsoft in Zukunft wohl die Interaktion mit Computern optimieren.

Wie das Invention Blog von New Scientist berichtet, versucht die Redmonder Software-Schmiede wohl, damit das Problem zu umgehen, dass man schlecht über sich selbst und seine Arbeitsweise Auskunft geben kann, während man konzentriert mit genau dieser Arbeitsweise mit einem Computer interagiert.

Mal davon abgesehen, dass ich Ideenpatente wie dieses ablehne, hier noch ein Tip an Microsoft:

Wenn Sie eine möglichst den Bedürfnissen des Users angepasstes User-Interface entwickeln wollen, entwickeln Sie ein möglichst modulares Interface, bei dem der User selbst bestimmen kann, wie er mit dem Computer interagieren möchte. Vielfalt und Flexibilität sind die Zauberwörter. Falls Sie ein paar Ideen brauchen: http://www.freedesktop.org