Seite 1 von 1
Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 11:40
von achim0401
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
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 11:55
von sparrow
Wie lautet denn die komplette Fehlermeldung?
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 11:58
von Sirius3
Eingerückt wird in Python immer mit 4 Leerzeichen pro Ebene, nicht 3.
Jetzt wäre es schön zu wissen, welche Fehlermeldung Du bekommst.
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 13:09
von peterpy
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 15:12
von achim0401
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
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 15:18
von sparrow
"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.
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 15:46
von Sirius3
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()
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 15:57
von achim0401
from gpiozero import LED
from signal import pause
red = LED(14)
red.blink()
pause()
Es ist 4 mal eingerückt im ori. Habe es noch mal kontrolliert. Es könnte sein das es hier anders aussieht
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 15:58
von achim0401
Mis.. Es wird anders dargestellt als es wirklich ist. Muss noch lernen wie man so was macht. Es ind wirklich 4 frei tasten da vor
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 16:00
von __deets__
Es gibt Code Tags. Das ist der </>-Knopf im vollständigen Editor. Bitte in Zukunft benutzen.
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 16:12
von achim0401
Code: Alles auswählen
from gpiozero import LED
from signal import pause
red = LED(14)
red.blink()
pause()
mal sehen ob das besser aussieht
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 16:16
von sparrow
Geht es.
Und ich sehe das wie Python: Unerwartete Einrückung.
Weißt du warum Einrückungen in Python wichtig sind? Hast du das offizielle Tutorial mal durchgearbeitet?
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 16:26
von achim0401
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
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 16:30
von sparrow
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?
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 18:54
von achim0401
Ich habe keine Zeilen willkürlich eingerückt. Das hat Python allein gemacht bzw. vorgegeben. Es ist so von Python gemacht worden wie es im Beitrag von 17:12 steht
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 19:02
von __deets__
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?
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 19:14
von achim0401
Damit werden Blöcke definiert
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 19:35
von pillmuncher
achim0401 hat geschrieben: ↑Montag 7. Dezember 2020, 18:54
Ich habe keine Zeilen willkürlich eingerückt. Das hat Python allein gemacht bzw. vorgegeben. Es ist so von Python gemacht worden wie es im Beitrag von 17:12 steht
Das kann nicht sein. Dein Editor hat das womöglich getan, aber Python ist kein Editor. Womit schreibst du deine Programme?
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 19:38
von __deets__
achim0401 hat geschrieben: ↑Montag 7. Dezember 2020, 19:14
Damit werden Blöcke definiert
Eben. Du hast also einen Block definiert, wo keiner hingehoert. Egal ob da jetzt der Editor zwischengefunkt hat oder nicht (was ich fuer ziemlich unwahrscheinlich halte), Fakt ist: da gehoert kein Block hin.
Re: Erste Programme in Python
Verfasst: Montag 7. Dezember 2020, 21:10
von snafu
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.