我想选择许多给定的数字并将它们与我选择的数字进行比较,如何使用any
或all
命令执行此操作,我尝试了这个并且它不起作用,任何输入将不胜感激:
import random
v = int(input("What number are you looking for ?"))
a1 = int(input("What is the first number"))
a2 = int(input("What is the second number"))
a3 = int(input("What is the third number"))
a = random.choice([a1,a2,a3])
b = random.choice([a1,a2,a3])
c = random.choice([a1,a2,a3])
if any ([a, b, c]) == v:
print('We got a hit')
输入以下内容,我无法让if
评估为True
:
What number are you looking for ?5
What is the first number1
What is the second number2
What is the third number5
>>>
我如何在这里使用any
错误?由于最后一个数字是5
,我应该受到打击,但我什么都没得到。
答案 0 :(得分:1)
因为您使用any
错误。要达到您想要的效果,请将条件提供给any
:
if any(v == i for i in [a, b, c]):
print('We got a hit')
这将检查列表[a, b, c]
中的值是否等于v
。
你的方法:
any([a, b, c]) == v
首先使用any
来检查所提供的iterable([a, b, c]
)中的任何元素是否具有真值(并且确实如此,如果它们是正整数,则它们都会执行)返回指示该结果的适当结果True
。所以:
any([a, b, c])
将返回True
。然后你的情况变成:
True == v
显然评估为False
。