Seite 1 von 1
Syntax error in if bei Gruppierung der Bedingungen
Verfasst: Donnerstag 23. Januar 2025, 10:38
von franze_m
Sorry für die Frage, ich habe Tomaten auf den Augen und finde den Fehler nicht:
Code: Alles auswählen
if ((float(batt_v[n] > float(vbatt_min)) and lowbat[n] == 0):
^
SyntaxError: invalid syntax
Ich will in die If-Abfrage noch weitere Parameter zum testen aufnehmen und muss die Abfragen entsprechend gruppieren.
Warum er dann den : anmeckert ist mir unklar.
Re: Syntax error in if bei Gruppierung der Bedingungen
Verfasst: Donnerstag 23. Januar 2025, 10:42
von grubenfox
vier öffnende Klammern <> drei schließende Klammern
[falls ich keine Tomaten auf den Augen habe und mich jetzt verzählt habe]

Re: Syntax error in if bei Gruppierung der Bedingungen
Verfasst: Donnerstag 23. Januar 2025, 10:50
von franze_m
Du hast keine Tomaten auf den Augen, Danke.
Re: Syntax error in if bei Gruppierung der Bedingungen
Verfasst: Donnerstag 23. Januar 2025, 11:18
von Sirius3
Was die Sache einfacher machen würde: Typen von Strukturen sollten gleich beim Anlegen der Struktur richtig sein. Also die Umwandlung in float schon beim Setzen von batt_v[n].
Variablennamen sollten aussagekräftig sein. Hat das bat mit einem T irgend etwas mit dem batt mit zwei T zu tun?
Zusammengehörende Werte sollten nicht in verschiedenen Listen sein, als batteries[n].voltage statt batt_v und batteries[n].low_voltage statt lowbat.
Dann wird der Code deutliche lesbarer und weniger fehleranfällig:
Code: Alles auswählen
for battery in batteries:
if battery.voltage > battery_voltage_min and battery.low_voltage == 0:
...
Re: Syntax error in if bei Gruppierung der Bedingungen
Verfasst: Donnerstag 23. Januar 2025, 13:18
von DeaD_EyE
Ist batterylow.voltage ein Integer? Falls der Wert errechnet wird, kann er minimal von 0.0 abweichen und ist dann ungleich 0.
Lösung:
https://docs.python.org/3/library/math. ... th.isclose