为什么这个 while 循环中途终止?

问题描述 投票:0回答:1

我正在为“猜测随机数”项目运行 while 循环。我的问题是,当用户最终猜测正确答案时,下面的代码没有按应有的方式打印“Bingo”。相反,它正在退出 while 循环。

在其他语言中,while 循环在每次运行后都会评估条件。在这种情况下,即使在执行最后一条语句之前,循环似乎也会在条件不再为真时终止。

为什么会这样?

import random
x=100
random_number = random.randint(1,x)
y = int(input('what do you think is the number?! '))
while y!= random_number:
    if y>random_number:
        print('Too high')
        y = int(input('what do you think is the number?! '))
    elif y<random_number:
        print('Too low')
        y = int(input('what do you think is the number?! '))
    else:
        print('Bingo!')
python while-loop
1个回答
3
投票

当用户输入正确的数字时,下一次迭代的

y != random_number
条件失败,因此循环停止。它永远不会到达
else:
块。

代替

while condition:
,检查循环内的条件并在打印消息后使用
break
停止。

while True:
    y = int(input('what do you think is the number?! '))
    if y>random_number:
        print('Too high')
    elif y<random_number:
        print('Too low')
    else:
        print('Bingo!')
        break
© www.soinside.com 2019 - 2024. All rights reserved.