2016-10-08 10 views
0

多くの与えられた数値を選択して数値と比較したいのですが、anyまたはallコマンドを使ってどうやってこれを試したのですか?仕事、任意の入力が認識されるであろう:any()関数の使い方を理解しようとしています

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') 

は、次のように入力し、私はifTrueに評価することができません:どのように私はここで間違っanyを使用しています

What number are you looking for ?5 
What is the first number1 
What is the second number2 
What is the third number5 
>>> 

?最後の数字は5なので、ヒットするはずですが、何も得られません。

+0

あなたは 'any'を必要としませんが、[vの場合は[a、b、c]'が必要です。 'any'、' all'をいつ使うべきかについてはPythonのドキュメントをチェックしてください。 –

+0

ありがとう、しかし、もしvがこれらすべての数よりも大きいか、またはvがこれらの数のどれよりも小さいなら、どうすればいいのですか?多分この例ははっきりしていないかもしれません –

+0

私は10の値を持っていて、もしvがこれらの値のどれよりも大きければ言いたいと思っています...何かをしてください –

答えて

1

anyが間違っているためです。あなたが望むものを達成するために、anyに条件を供給:

if any(v == i for i in [a, b, c]): 
    print('We got a hit') 

これはvに等しいリスト[a, b, c]に値があることを確認します。

あなたのアプローチ:

any([a, b, c]) == v 

最初、彼らは肯定している場合は、それらのすべてがそう、供給反復可能([a, b, c])内の要素のいずれかがtruthy値を持っている(とそれがないかどうかを確認するためにanyを使用します。整数)を返し、それを示す適切な結果Trueを返します。したがって:

any([a, b, c]) 

は、Trueを返します。あなたの状態は次のようになります:

True == v 

これは明らかにFalseと評価されます。

+0

ああ、ありがたいですが、私は何かがもっと大きくて小さいので、私が使うことができないと言うこともしています...私はちょうど数週間前に申し訳ありませんLOLを始めました –

関連する問題