如果/ Then语句在while循环内部不起作用

时间:2016-05-23 18:13:04

标签: python loops if-statement

此循环内的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.')

我已将代码放入可视化工具中,即使变量播放!=是或是,它仍然选择==路径。

2 个答案:

答案 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