Seite 1 von 1

Problem mit While-Schleife

Verfasst: Samstag 15. Dezember 2018, 16:56
von TheBlackApple
import time

class Ampel:
def __init__(self, rot, gelb, gruen):
self.rot = rot
self.gruen = gruen
self.gelb = gelb

def Rotphase(self):
print(self.rot)

def Gelbphase(self):
print(self.gelb)


def RotGelbphase(self):
print(self.rot + " ist an")
print(self.gelb + " ist an")
print(self.gruen + " ist aus")

def Gruenphase(self):
print(self.gruen)

a = Ampel("A", "B", "C")

while True:
xAlt = 0
xNeu = time.clock()

if xNeu > 5 and xNeu < 10:
a.Rotphase()

if xNeu > 10 and xNeu < 15:
a.Gelbphase()

xNeu = xAlt




Wieso wird die While-Schleife nicht wieder erneut gestartet?
Ich bedanke mich schon mal für jede Art der Hilfestellung.

Re: Problem mit While-Schleife

Verfasst: Samstag 15. Dezember 2018, 18:29
von noisefloor
Hallo,

setzt' den Code bitte unbedingt in Code-Tags. Dazu musst du im vollständigen Editor auf das `</>` Symbol klicken und deine Code da einsetzen. Ohne korrekte Einrückung ist die Fehleranalyse nicht möglich.

Was aber schon mal klar ist: die Klasse macht so wenig Sinn. Du änderst du Werte von rot, gelb, grün nicht, d.h. die Klasse bildet deine Phasen nicht ab. Und um ein paar Attribute ausgeben zu lassen, die sich nicht ändern, braucht man auch keine Methoden.

Welchen Sinn hat das `x` als Präfix vor Alt und Neu? Macht eigentlich keinen Sinn.

Gruß, noisefloor

Re: Problem mit While-Schleife

Verfasst: Samstag 15. Dezember 2018, 21:06
von Sirius3
@TheBlackApple: die Endlosschleife läuft endlos und heizt Deine Wohnung, mehr macht sie nicht. Hast Du Dir mal angeschaut, was in xNeu steht? Die Zuweisung xNeu=xAlt ist unnötig, da xNeu gleich wieder überschrieben wird. xAlt wird nicht verwendet, und wäre sowieso immer 0.
Du willst messen, wie viel Zeit vergangen ist, dann sollte xAlt die Zeit z.B. der letzten Grünphase enthalten und Du solltest immer die Differenz zur aktuellen Zeit berechnen,