我有麻烦了。我希望代码循环并询问'Hey, are you hungry?'
,但前提是饥饿变量不是True
或{True
。在
在我的头脑中,如果我输入yes的变体,那么hungry应该是True
,代码应该停止。如果我输入no的变体,那么代码应该是False
并停止。如果我没有输入这两个,那么hungry将不会是True
或{
hungry = None
while hungry != True or False:
hungry = input('Hey, are you hungry?')
if hungry == 'yes' or 'ye' or 'y' or 'yeah':
print ('oh you hungry huh')
hungry = True
elif hungry == 'no' or 'n' or 'nah' or 'nope':
print ('no food for you then')
hungry = False
else:
print ('its a simple yes or no question pls')
这里有几个问题,尤其是使用同一个变量名进行一些不同的用途,这不是一种好的风格,而且还没有真正使用python中的控制流原语-查找它(https://wiki.python.org/moin/WhileLoop)。在
简明扼要的工作解决方案如下:
上面我们得到的是:
我们正在启动一个无限循环(虽然是真的)
我们将用户输入分配给hungry变量-这就是它的全部内容
如果用户在“yes”或“no”上输入一个变量,它将打印一个响应并跳出while循环
如果他们没有提供“是/否”的答案,它将再次返回循环的开始(即no break)
你不能用Python说
if x == a or b or c
,然后让它做你想做的事情。您需要使用if x in [a, b, c]
。在条件}或{}或{}中的任何一个是真的。它检查
hungry == 'yes' or 'ye' or 'y' or 'yeah'
不检查hungry == 'yes'
或{(hungry == yes) or 'ye' or 'y' or 'yeah'
(并且除了hungry == yes
之外没有任何东西有真值)类似地,
hungry != True or False
正在检查(hungry != True) or False
,因此条件的False
部分不执行任何操作。在你应该这样写:
相关问题 更多 >
编程相关推荐