Seite 1 von 1

Syntax Fehler?

Verfasst: Sonntag 4. August 2019, 18:16
von wofis
Hallo!

Ich versuche ein kleines Python Skript für den Raspberry Pi zu schreiben. Leider bekomme ich immer einen Syntax Fehler in Zeile 13 ( else(GPIO.output(input_pin)) ) zurück obwohl mir die Schreibweise des Codeblocks stimmen zu scheint. Hat jemand einen Tipp für mich wo der Fehler liegen könnte?

Code: Alles auswählen

import time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)

input_pin = 17

while True:
	if(GPIO.input(input_pin)):
		print("offen")
	time.sleep(1)
	
	else(GPIO.output(input_pin)):
		print("geschlossen")
	time.sleep(1)

Re: Syntax Fehler?

Verfasst: Sonntag 4. August 2019, 18:23
von __deets__
Du musst elif statt else verwenden, wenn du eine Bedingung prüfen willst. Und weniger Klammern mit dem Salzstreuer machen das ganze lesbarer, um die Bedingungen in if/elif gehören keine äußeren Klammern.

Re: Syntax Fehler?

Verfasst: Sonntag 4. August 2019, 18:30
von sparrow
Folgendes zum Codestyle, damit sowohl du als auch andere, den Code einfacher verstehen können:

Eingerückt wird mit 4 Leerzeichen, nicht mit Tabstopps.

Per Konvention schreibt man Konstanten GROSS. Es ist also INPUT_PIN, nicht input_pin.

weder if noch else sind Funktionen, daher sind die Klammer danach unnötig.

Und zusätzlich zu dem, was deets sagt: Die Einrückung deinr time.sleeps() stimmt nicht.

Re: Syntax Fehler?

Verfasst: Sonntag 4. August 2019, 18:35
von __blackjack__
Und noch ergänzend bei `GPIO.output()` etwas zu übergeben was `input_pin` heisst, ist verwirrend, und es fehlt dann auch noch der Wert, also ob da nun Strom an oder aus sein soll. Zudem fehlt vorher das `setup()` für den Pin.