Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
from time import sleep
Mode = 2
ModeL = 1
while (True):
if Mode ==2:
ModeL = 2
sleep(2)
ModeL = 4
sleep(2)
ModeL = 6
sleep(2)
jetzt ist mein Problem das "ModeL" sofort der Wert "6" zugewiesen wird aber es sollen erst die beiden anderen Werte zugewiesen werden.
Hat da jemand einen Tip für mich?
Zuletzt geändert von Anonymous am Sonntag 2. Oktober 2016, 18:49, insgesamt 1-mal geändert.
Grund:Quelltext in Python-Codebox-Tags gesetzt.
@cooool39: Das ist aber auch noch nicht der Code den Du laufen lässt, denn der ist nicht korrekt eingerückt. Und dort wird ModeL nie der Wert 6 zugewiesen, denn das ist auskommentiert. Wäre es das nicht, dann würde der Wert auch nicht *sofort* zugewiesen, sondern erst nach den Wartezeiten die durch die `sleep()`-Aufrufe entstehen. Es würde aber auch gar keinen Sinn machen den auskommentierten Code zu verwenden. Da werdn ModeL der Reihe nach verschiedene Werte zugewiesen, aber damit wird dann ja nichts gemacht, sondern einfach nur wieder gewartet bis der nächste Wert zugewiesen wird.
Ich glaube Du hast falsche Vorstellungen davon in welcher Reihenfolge der Code abgearbeitet wird.
Was soll der Code denn am Ende bewirken? Brauchst Du dafür diese magischen `Mode` und `ModeL`-Zahlen? Kann man das nicht direkter ausdrücken, oder zumindest mit etwas anderem als nichtssagenden Zahlen? Wenigstens Konstanten‽
Bei der Namensgebung solltest Du alles was keine Klasse oder Konstante ist klein_mit_unterstrichen schreiben. Klassen in MixedCase und Konstanten KOMPLETT_IN_GROSSBUCHSTABEN. Keine kryptischen Abkürzungen in Namen. Wenn `ModeL` `mode_left` heissen soll, dann schreib das auch. Wenn nicht, dann weisst Du jetzt warum man es nicht abkürzen sollte: Man versteht dann nicht was es bedeutet. Eingerückt wird mit vier Leerzeichen pro Ebene. Bedingungen bei ``if``/``while`` & Co brauchen keine Klammern.
Da sich die drei ``if``-Bedingungen gegenseitig ausschliessen, würde sich hier ``elif`` für die beiden letzten Bedingungen anbieten.
Auf Modulebene gehören eigentlich nur Definitionen von Konstanten, Funktionen, und Klassen. Das Hauptprogramm steht üblicherweise in einer Funktion die `main()` heisst.
Edit: Bei den ``if``/``elif`` habe ich den Unterschied zwischen `Mode` und `ModeL` übersehen. Ein weiterer Grund warum dieses L nicht so toll ist: Man verwechselt das leicht.