Wie löse ich dieses Problem (Python)?
Wie man sieht versuche ich einen Timer mit dem folgendem Prinzip zu erstellen. Nur aus irgendeinem Grund ist dieses "Sekunde + 1" Gelb markiert. Wenn ich dann rechts auf diese Info über diese Meldung gehe, steht da: "Statement seems to have no effect". Was muss ich da jetzt machen um weiterzukommen?
wenn ich Sekunde += 1 schreibe wird folgendes angezeigt
3 Antworten
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Sekunde += 1
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Kann eigentlich nicht sein. Kannst du mal einen Screenshot schicken?
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Ah, liegt daran das "Sekunde" lokal ist.
"global Sekunde" muss am Anfang in "def Time():"
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Wie meinst du das jetzt? Ich hab das nicht so ganz verstanden
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Desweiteren würde ich dir empfehlen deine Variable ("Time") nicht so wie deine Funktion zu nennen.
Hier ein funktionierendes Beispiel:
import time
Sekunde = 0
Minute = 0
Stunde = 0
def main():
global Sekunde
global Minute
global Stunde
while True: # Wiederholle alles eingerückte unendlich
my_time = str(Stunde) + ":" + str(Minute) + ":" + str(Sekunde)
Sekunde += 1
print(my_time)
time.sleep(1)
main()
Liebe Grüße :)
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Hier übrigens das ganze in richtig ordentlich
import time
seconds = 0
while True:
print(f"{seconds // 3600}:{seconds % 3600 // 60}:{seconds % 60}")
seconds += 1
time.sleep(1)
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/user/Hanibal545/1656531652297_nmmslarge__0_0_1080_1079_eb4d44530689a94c77c17752e5e1a1cb.jpg?v=1656531652000)
Ich würde keine globale Variablen verwenden, sondern nur lokale
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Ja, würd ich auch. Deswegen hab ich nochmal ein ordentliches Beispiel gegeben
![](https://images.gutefrage.net/media/user/Hanibal545/1656531652297_nmmslarge__0_0_1080_1079_eb4d44530689a94c77c17752e5e1a1cb.jpg?v=1656531652000)
Ein kleiner Tipp für dich. Du könntest noch die Zahl formatieren, um es besser anzuzeigen.
print(f"{seconds // 3600:02d}:{seconds % 3600 // 60:02d}:{seconds % 60:02d}")
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Ja, das ist aber nicht das Ergebniss was das Programm von Goldstern107 erzielen soll.
![](https://images.gutefrage.net/media/user/Hanibal545/1656531652297_nmmslarge__0_0_1080_1079_eb4d44530689a94c77c17752e5e1a1cb.jpg?v=1656531652000)
Ic glaube schon, dass @Goldstern107 es eigentlich machen wollte, da er Stunde = 00 gesetzt hat. Außerdem war es ja nur eine Information und ein Verbesserungsvorschlag....
![](https://images.gutefrage.net/media/user/Hanibal545/1656531652297_nmmslarge__0_0_1080_1079_eb4d44530689a94c77c17752e5e1a1cb.jpg?v=1656531652000)
Vielleicht ist das Problem, dass du den gleichen Namen für die Variable und der Funktion gebommen hast. Zudem bringt Sekunden + q nichts, da du die Varuable nicht nochmals abgespeichert hast(also Sekunde += 1 oder Sekunde = Sekunde + 1).
Zudem würde ich nicht globale sondern lokale Variablen verwenden. Da könnte auch der Fehler liegen. Also am besten die Variable in der Funktion definieren.
Ich hoffe ich konnte dir weiterhelfen.
LG
![](https://images.gutefrage.net/media/default/user/5_nmmslarge.png?v=1438863662000)
Wieso willst Du Main() in Main() zurückgeben, das ergibt keinen Sinn, Funktion und Variable sollten nicht den gleichen Bezeichner haben, es sollte sekunde +=1 sein.
und das global vor sekunde habe ich natürlich auch übersehen, wobei sich auch da die Frage stellt - warum?
Dann ist das Rot markiert