Hallo
mache gerade meine ersten Gehversuche in Python 3.
Das hat schon mla geklappt:
from gpiozero import LED
from time import sleep
red = LED(14)
while True:
red.on()
sleep(1)
red.off()
sleep(1)
Als Alternative wird das angegeben:
from gpiozero import LED
from signal import pause
red = LED(14)
red.blink()
pause()
Dabei bekomme ich die Fehlermeldung line 4, red.blink()
Leider ist mir unklar was der Fehler ist. Könnte mir jemand das erklären.
achim
Erste Programme in Python
Hallo achim0401
schau mal hier:https://gpiozero.readthedocs.io/en/rest ... t.html#led
Gruss Peter
schau mal hier:https://gpiozero.readthedocs.io/en/rest ... t.html#led
Code: Alles auswählen
blink(on_time=1, off_time=1, n=None, background=True)
Fehlermeldung:
Traceback (most recent call last):
File "/usr/lib/python3.7/ast.py", line 35, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "/home/pi/Blink1_3.py", line 4
red.blink()
^
IndentationError: unexpected indent
Traceback (most recent call last):
File "/usr/lib/python3.7/ast.py", line 35, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "/home/pi/Blink1_3.py", line 4
red.blink()
^
IndentationError: unexpected indent
"Indention" ist "Einrückung".
In Python ist die Einrückung fundamental, weil damit Blöcke definiert weren.
Wie die Fehlermeldung dir sagt: Etwas stimmt dort mit der Einrückung nicht. "Unerwartete Einrückung". Die wird aus dem Code, den du hier gezeigt hast, aber nicht ersichtlich.
In Python ist die Einrückung fundamental, weil damit Blöcke definiert weren.
Wie die Fehlermeldung dir sagt: Etwas stimmt dort mit der Einrückung nicht. "Unerwartete Einrückung". Die wird aus dem Code, den du hier gezeigt hast, aber nicht ersichtlich.
Das blink muß genauso tief eingerückt sein, wie die Zeilen drumrum:
Code: Alles auswählen
from gpiozero import LED
from signal import pause
red = LED(14)
red.blink()
pause()
Code: Alles auswählen
from gpiozero import LED
from signal import pause
red = LED(14)
red.blink()
pause()
Es kommt immer noch die Fehlermeldung. Das Einrücken wie es jetzt ist wurde von Python selber vorgenommen. Habe es auch noch mal nachgezählt, es sind 4 mal bei beiden Zeilen vorhanden. Habe auch das Tut durchgearbeitet. In anderen Programmen funktioniert es ohne Probleme
Es macht keinen Sinn, dass die 4. Zeile in deinem Code eingerückt ist. Und es ist syntaktisch falsch.
Mit einer Einrückung bildet man einen Block. Zum Beispiel um den Rumpf einer Funktion, Schleife oder Bedingung zu kennzeichnen.
Aber hier hast du willkürlich Zeilen eingerückt. Warum?
Mit einer Einrückung bildet man einen Block. Zum Beispiel um den Rumpf einer Funktion, Schleife oder Bedingung zu kennzeichnen.
Aber hier hast du willkürlich Zeilen eingerückt. Warum?
Python macht da ueberhaupt nichts. Bestenfalls macht deine IDE die du benutzt etwas. Und auch das waere ungewoehnlich, dass die das tut, ohne das du das gewollt hast. Das machen IDEs zb wenn man eine if-Anweisung schreibt, um danach dann gleich im eingerueckten Block weiter zu schreiben. Aber nicht einfach so.
Ohne das du verstehst, warum in Python eingerueckt wird, kannst du kein Python schreiben. Weisst du, wozu die Einrueckungen in Python sind?
Ohne das du verstehst, warum in Python eingerueckt wird, kannst du kein Python schreiben. Weisst du, wozu die Einrueckungen in Python sind?
- pillmuncher
- User
- Beiträge: 1527
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
Das kann nicht sein. Dein Editor hat das womöglich getan, aber Python ist kein Editor. Womit schreibst du deine Programme?
In specifications, Murphy's Law supersedes Ohm's.
Wahrscheinlich wurde bei einem Zwischenstand des Codes die Einrückung vom Editor / IDE gesetzt, weil an der Stelle tatsächlich mal ein Block eingeleitet wurde. Selbst das könnte unabsichtlich geschehen sein, wenn beim Lernen ein Doppelpunkt gesetzt wurde, wo keiner hingehört. Fakt ist jedenfalls, dass der Fehler an der Einrückung liegt. Wenn man die raus nimmt und nicht "ewig" darüber diskutiert, dann wird auch die Fehlermeldung verschwinden.