此循环内的if / else语句不起作用。如果我输入“no”,它仍然继续循环。我不明白为什么,任何帮助将不胜感激。
while keepPlaying == True:
play = input(str('Would you like to play rock, paper, scissors? Yes or no?\n'))
if play == str('yes') or str('Yes'):
playerChoice = input(str('Ok! what\'s your choice?\n'))
else:
keepPlaying = False
print ('Thanks for playing.')
我已将代码放入可视化工具中,即使变量播放!=是或是,它仍然选择==路径。
答案 0 :(得分:4)
问题在于:
if play == str('yes') or str('Yes'):
相当于:
if (play == str('yes')) or str('Yes'):
请注意,str('Yes')
始终是真实的(并且or
意味着您永远不会得到false
部分。)
你想:
if play in ('yes', 'Yes'):
或者(只是提示):
if play.lower() == 'yes':
答案 1 :(得分:0)
将if
条件更改为play in ('Yes', 'yes', 'y', 'Y')
问题是,or
子句的第二部分(str('Yes')
)始终评估为true
。