试图了解如何使用any()函数

时间:2016-10-08 22:10:58

标签: python python-3.x

我想选择许多给定的数字并将它们与我选择的数字进行比较,如何使用anyall命令执行此操作,我尝试了这个并且它不起作用,任何输入将不胜感激:

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,我应该受到打击,但我什么都没得到。

1 个答案:

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