【问题标题】:My while loop is only iterating once python我的while循环只迭代一次python
【发布时间】:2016-07-31 12:08:55
【问题描述】:

我以前见过这样的问题,但问题是它们使用不同的语言。据我所知,一切都应该工作。但是,我是处理时间库的新手,我认为我可能在那里犯了一个错误。

我正在使用循环十次来模拟火箭发射倒计时。

这是我的代码:

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

这是我一直在运行它的唯一代码(我认为它不需要太多),但我不知道哪里出了问题。问题是它只打印一个值 (10)。

【问题讨论】:

  • x0 开头,这意味着它不大于 10,因此 while 循环永远不会进入...
  • 你的意思是x < 10...

标签: loops python-3.x while-loop


【解决方案1】:

您创建x = 0,而我们知道0 < 10,因此循环甚至不会开始。请改用while x < 10:

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

顺便说一句,如果我是你,我会这样写:

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

【讨论】:

  • 因为它被标记为 Python 3.x - 没有 xrange - 你需要 range 代替。此外 - 而不是在循环内进行数学运算 - 相应地调整范围,例如:range(10, -1, -1)
  • @JonClements 已编辑。