2011-11-07 19 views
2

私はQのようなものを作っています& Pythonでのスクリプト。 raw_inputを取得し、それをtheQuestionとして設定します。私はif 'var1' and 'var2' in theQuestion:を試しましたが、両方の文字列のどちらかを探します。 「if」文でこの作業を行う方法はありますか? ( 'x:if y:then z)ではない。'z'に 'x'と 'y'がある場合:

+0

可能な複製[と比較のpython演算子の優先順位](http://stackoverflow.com/questions/7479808/python-operator-precedence-of-in-and-comparision) –

答えて

12

andは、自然言語ではなく論理ANDです。テストの多数のため、

また
if 'var1' in theQuestion and 'var2' in theQuestion: 

:あなたは論理ANDで2つのテストを接続したい

'var1' and 'var2' in theQuestion 
True and 'var2' in theQuestion # Since bool('var1') == True 
      'var2' in theQuestion 

:したがって、あなたのコードがあると解釈されます

if all(k in theQuestion for k in ('var1', 'var2')): 
+6

またはより一般的に、 'if var in vars) 'ここで' vars'は '(var1、var2)'です。 – agf

+1

@agf Pythonで難読化されたコードを書く方法の例がありますが、それも追加しました。 – phihag

+1

そこにいくつのヴァルスがあるのか​​わからなかったらどうしますか?あるいは、変数が10個ある場合は?私はそれが完全に読めると思います。 "変数が変数リストの各変数のtheQuestionに存在する場合" – agf

2

方法約:

if 'x' in z and 'y' in z: 
    ... do something ... 
関連する問題