Probleme mit elif - Anweisung

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
TOWA
User
Beiträge: 4
Registriert: Sonntag 26. November 2017, 20:06

Hallo zusammen
Ich drehe mich derzeit im Kreis. Meine Elif Vergleichskette funktioniert in der ersten Zeile wunderbar aber die zweite Zeile tut garnichts egal wie ich die werte der Variablen verändere.
die Testwerte: aussen = 22 , vorlauf = 25 , zeit = uhrzeit , h... sind die Schaltzeiten soweit ist alles gut
aber zweite zeile : tag = wochentag (0 - 6) , status = 7 und sowi = ist variabel (Schieberegler) 15 - 25 (Sommer/Winter-Umschaltung.
Seit ich die Klammern in der ersten Zeile gesetzt habe funktioniert diese. In der zweiten hat das nichts gebracht.
vielleicht hat ja Jemand eine Idee.(das ist nur ein kleiner Ausschnitt, das Script hat 56 solcher Vergleiche


elif (aussen > 10 and aussen < 25 and vorlauf < 40) and (zeit > h11v and zeit < h11b) or (zeit > h12v and zeit < h12b) \ and tag >=1 and tag <= 5 and status > 5 and aussen <= sowi :
leftLabel34.config(text="Tag-an", foreground='green')
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@TOWA: bei welchen Werten der Variablen denkst Du denn, dass der if-Zweig betreten werden müßte, und tut es in Wirklichkeit nicht?
TOWA
User
Beiträge: 4
Registriert: Sonntag 26. November 2017, 20:06

Die obere Zeile tut genau was sie soll wenn ich die Variablen ändere kommt die entsprechende Reaktion.
Wenn ich den Wochen tag oder die somme/winter Umschaltung ändere passiert garnichts . es wird mit "wahr" ausgewertet obwohl der wochentag 0 ist oder aussen größer als sowi ist. Das bringt mich zu der Schlussfolgerung das die zweite Zeile garnicht gelesen wird. aber warum?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Solange Du den Code und die zugehörigen Daten zeigst, wird das Dir niemand beantworten können.
harryberlin
User
Beiträge: 227
Registriert: Donnerstag 17. Dezember 2015, 12:17

python kann da was ganz cooles um teile zu vereinfachen:

Code: Alles auswählen

aussen > 10 and aussen < 25 '''--->''' 10 < aussen < 25
zeit > h11v and zeit < h11b '''--->''' h11v < zeit < h11b
zeit > h12v and zeit < h12b '''--->''' h12v < zeit < h12b
tag >=1 and tag <= 5 and status > 5 '''--->''' 1 <= tag <= 5 < status
empty Sig
Antworten