当按下回车键时,循环不会中断

时间:2018-01-22 19:51:18

标签: python while-loop

下面的程序是一个使用Python3编写的随机库的骰子模拟器。它随机选择骰子上的6个数字中的1个数字。

import random
while True:
    pipe = input("Type y to roll the dice ")
    if pipe in ('y'):
        numbers = [1,2,3,4,5,6]
        x = random.choice(numbers)
        print (x)
    else:
        print ("GoodBye")
        break

问题:当我按下enter(return)键时,程序正在使用' y'案例并给出一个随机值而不是结束(打破循环)程序。这是为什么?

2 个答案:

答案 0 :(得分:1)

return时,输入为空字符串。这可以在任何字符串中找到,因此您的检查仍然是True:您对字符串进行了字符检查。你可能已经用

进行了扩展
if pipe in "Yy":

这会捕获大写或小写Y,但仍然无法在空字符串上终止。

正如其他人所建议的那样,使用不同的检查,因此您正在寻找一个whole_string匹配:

if pipe in ['y', 'Y']:

答案 1 :(得分:0)

将if条件更改为

if pipe is 'y':
相关问题