我开始学习python,我不明白代码有什么问题。这是任务:
使用 while True 循环(永远循环)给 4 次机会在彩虹彩虹中输入正确颜色 =“红橙黄绿蓝靛紫”
简而言之,在 4 次尝试中,使用 while,在字符串变量中找到将通过 input 输入的颜色
rainbow = "red orange yellow green blue indigo violet"
tries = 0
while True:
color = input("Try your color: ")
tries += 1
if tries == 4:
break
elif color in rainbow == True:
print ("Correct!")
break
您需要
elif color in rainbow == True:
用正确的表达式替换表达式elif color in rainbow:
。这就是为什么问题中的代码不起作用的原因,即使乍一看似乎是正确的:
我对为什么会这样感兴趣,谷歌搜索在这个来源中找到了答案。
根据它,当我们编写一个表达式时
color in rainbow is True
,它会扩展为:而且因为
(rainbow is True)
返回False
,则整个表达式变为False
。但是如果括号放置正确就不会有这样的问题:(color in rainbow) is True
.当然,最好马上写:
改变一行就足够了: