Seite 1 von 1

Kleines Logik-Raetsel

Verfasst: Freitag 1. Juli 2016, 09:40
von Splinter479
Hallo,

ich habe einen sehr grossen logischen Ausdruck in deiner if-Abfrage und ich bin Fan davon, diese zusammenzustauchen, um den Code immer etwas "kurz und knapp" zu halten. Leider scheint Python an irgendeiner Stelle die Umformung nicht zu befolgen. Brauche hier evtl. jemanden mit etwas Erfahrung von Bool'scher Logik in Python.
Meine Ueberpruefung lautet:

Code: Alles auswählen

((x >= s) and (x <= e)) and ((y >= s) and (y <= e)),   und dazu die Umformung:
(x >= s) and (y >= s) and (x <= e) and (y <= e)         ===
((x and y) >= s) and ((x and y) <= e)                   ===
(s <= (x and y)) and ((x and y) <= e)                   ===
s <= (x and y) <= e
Setze ich erste und fuenfte Zeile jeweils in if-clausel, erhalte ich im folgenden nicht die gleiche Menge.
Behandelt Python an irgendeiner Stelle die Logik-Gatter anders als naiv i.d. Theorie oder habe ich irgendwo einen Fehler, den ich uebersehe?

Vielen Dank!

Re: Kleines Logik-Raetsel

Verfasst: Freitag 1. Juli 2016, 10:02
von Sirius3
@Splinter479: wenn Du schon mit Logik anfängst, dann solltest Du doch sagen können, was der Ausdruck "x and y" bedeutet.

Re: Kleines Logik-Raetsel

Verfasst: Freitag 1. Juli 2016, 10:37
von Splinter479
ach, ich glaube ich habe einen Denkfehler gefunden.
Wenn ich wuesste wie, wuerde ich den Thread wieder loeschen. Nevermind.

Re: Kleines Logik-Raetsel

Verfasst: Freitag 1. Juli 2016, 12:02
von bwbg

Code: Alles auswählen

(s <= (x and y) <= e) != all(s <= p <= x for p in [x, y])
8)