下面的程序是一个使用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'案例并给出一个随机值而不是结束(打破循环)程序。这是为什么?
答案 0 :(得分:1)
按return
时,输入为空字符串。这可以在任何字符串中找到,因此您的检查仍然是True
:您对字符串进行了字符检查。你可能已经用
if pipe in "Yy":
这会捕获大写或小写Y
,但仍然无法在空字符串上终止。
正如其他人所建议的那样,使用不同的检查,因此您正在寻找一个whole_string匹配:
if pipe in ['y', 'Y']:
答案 1 :(得分:0)
将if条件更改为
if pipe is 'y':