2016-07-31 11 views
-1

Ich habe Fragen wie diese schon einmal gesehen, aber das Problem ist, dass sie in verschiedenen Sprachen waren. Soweit ich weiß, sollte alles funktionieren. Ich bin jedoch neu im Umgang mit der Zeitbibliothek und denke, dass ich dort vielleicht einen Fehler gemacht habe.Meine while-Schleife ist nur einmal iterieren python

Ich verwende eine while-Schleife, die zehnmal iteriert, um einen Raketenstart-Countdown zu simulieren.

Hier ist mein Code:

import time 
x = 0 
y = 10 
print("Launch sequence initiated...") 
time.sleep(3) 
print(y) 
while x > 10: 
    y = y - 1 
    time.sleep(1) 
    print(y) 
    x = x + 1 

Dies ist der einzige Code (I don‘t denke, dass es viel verlangt), dass ich es ausgeführt worden, wie ich durchmachte, aber ich kann nicht herausfinden, was ist falsch. Das Problem ist, dass nur ein Wert (10) gedruckt wird.

+2

'X' beginnt als '0', die es bedeutet, ist nicht größer als 10, so dass die während Schleife geht nie ein ... –

+2

Du meinst 'x <10' ... –

Antwort

4

Sie machen x = 0, und wir kennen 0 < 10, so dass die Schleife nicht einmal beginnen wird. Verwenden Sie while x < 10: statt:

import time 
x = 0 
y = 10 
print("Launch sequence initiated...") 
time.sleep(3) 
print(y) 
while x < 10: 
    y = y - 1 
    time.sleep(1) 
    print(y) 
    x = x + 1 

BTW, wenn ich du wäre, würde ich so etwas schreiben:

import time 
print("Launch sequence initiated...") 
time.sleep(3) 
for x in range(10, -1, -1): 
    print(x) 
    time.sleep(1) 
+1

Da dies mit Python 3.x markiert ist - es gibt kein' xrange' - du brauchst stattdessen 'range'. Auch - anstatt Mathe innerhalb der Schleife zu machen - passen Sie den Bereich entsprechend an, zB: 'range (10, -1, -1)' –

+0

@JonClements Edited. –

Verwandte Themen