Python 为什么代码不能按预期工作?其目的是获取输入,然后进行多达3次的真/假检查
正在创建嵌套的条件语句,但当我运行此操作且第一个布尔值为false时,不会出现下一个输入提示,请帮助Python 为什么代码不能按预期工作?其目的是获取输入,然后进行多达3次的真/假检查,python,if-statement,nested,Python,If Statement,Nested,正在创建嵌套的条件语句,但当我运行此操作且第一个布尔值为false时,不会出现下一个输入提示,请帮助 bird_names="magpie pigeon dove" bird_guess=input("venture a guess about the bird names we have stored: ") if bird_guess in bird_names==False: bird_guess=input("venture a guess about the bird name
bird_names="magpie pigeon dove"
bird_guess=input("venture a guess about the bird names we have stored: ")
if bird_guess in bird_names==False:
bird_guess=input("venture a guess about the bird names we have stored: ")
if bird_guess in bird_names==False:
bird_guess=input("try again ")
if bird_guess in bird_names==False:
print("you're out of tries")
else:
print("third time lucky")
else:
print("second time lucky")
else:
print("first time lucky")
问题是bird\u guess in bird\u names==False
的计算结果如下:
(bird_guess in bird_names) and (bird_names == False)
由于第二个表达式的计算结果总是False
,因此该条件永远不会满足。可以使用括号来避免问题:
(bird_guess in bird_names) == False
更惯用的方法是使用专门构建的not in
操作符:
bird_guess not in bird_names
问题是bird\u guess in bird\u names==False
的计算结果如下:
(bird_guess in bird_names) and (bird_names == False)
由于第二个表达式的计算结果总是False
,因此该条件永远不会满足。可以使用括号来避免问题:
(bird_guess in bird_names) == False
更惯用的方法是使用专门构建的not in
操作符:
bird_guess not in bird_names
你能举个例子说明它是如何不起作用的吗:)你能举个例子说明它是如何不起作用的吗:)