__blackjack__ hat geschrieben: ↑Montag 22. März 2021, 11:35
@rob87: Eingerückt wird mit vier Leerzeichen pro Ebene. Keine Tabs.
Da sowohl das eine als auch das andere funktioniert, nehme ich das praktischere. Aber danke für den Hinweis.
`gamepad` sollte nicht auf Modulebene existieren, das wäre dort globaler Zustand.
Sprich es sollte in die Main.
Kommentare sollten auch der Einrückung folgen. Das schöne an der Einrückung ist ja, dass man die Struktur des Codes daran sehen kann. Wenn die Kommentarzeilen da ”ausbrechen” macht man sich diese Eigenschaft kaputt.
Da geh ich voll mit. Da das eine gekürzte Version ist habe ich dort nicht so Richtig drauf geachtet.
Literale Zeichenketten sind keine Kommentare. Kommentarzeichen ist ``#`` und nichts anderes.
Ach du meinst die drei Hochkomma... Sag das doch. Komisch die Art habe ich schon bei mehreren Programmbespielen gesehen um ganze Textblöcke auszukommentieren.
Der Code kommt nicht am Compiler vorbei, da fehlt ein Doppelpunkt beim ``else:``.
Danke.
``global`` hat da nichts zu suchen. Funktionen und Methoden bekommen alles was sie außer Konstanten benötigen, als Argument(e) übergeben.
Stimmt die for-Schleife ist weder Funktion noch Methode und somit ist die Variable im kompletten Main verfügbar.
Die Vergleiche mit den magischen Zahlen bei `evdev` sind nicht gut. Was soll 102 bedeuten? Dafür stellt `evdev.ecodes` Konstanten bereit.
Das wird da auch falsch gemacht: Du weißt vom Code her nicht zwingend, dass der zu einem Ereignistyp gehört der ein `keystate`-Attribut hat. Es können ja mehrere Ereignistypen den Code 102 haben. Man muss also immer erst einmal prüfen ob der Ereignistyp stimmt.
Der Xbox-Controller übergibt nur einmal die ID 102. im Originalcode sortiere ich entsprechend sprechenden Variablen zu und
ja frage vorher den Ereignistyp ab.
Wo kommen `true` und `false` her? Mal angenommen das sind eigentlich `True` und `False`, dann ist das negieren mit ``not`` einfacher als da ein ``if``/``else`` für zu schreiben.
Gute Idee den Code zu optimieren.
`Blinker_links_aktiv` entspricht nicht der Namenskonvention.
Korrekt. Müsste klein geschrieben werden.
Der auskommentierte Blinkercode scheint komplette Fiktion zu sein, weil das Zuweisen an die Laufvariable natürlich nichts an dem Wert in der Liste ändert. Das ``else`` zum ``for`` macht keinen Sinn und verwirrt den Leser einfach nur.
Mit der Laufvariable magst du recht haben hier sollte man mit "enumerate" direkt in die Liste schreiben. Wie der Kommentar schon sagt ist das die Zeit die alle LED's an sind. Man könnte die sleep auch als erstes in die while schreiben.
=> Kannst du vielleicht noch zum eigentlichen Thema was sagen?
=> Müsste sowieso noch optimiert werden damit beim verlassen der while alle LED aus sind.