「GIN」または「NOT READY」または「TO BE ABANDON OR NEEDS RESUBMISSION」のいずれかの値が retrunVal に等しいかどうかを確認しようとしています。印刷された、構文が正しくないのではないかと疑っています。誰か入力を提供できますか?
if ('GIN' or 'NOT READY' or 'TO BE ABANDON OR NEEDS RESUBMISSION' == returnVal):
print "INSIDE"
「GIN」または「NOT READY」または「TO BE ABANDON OR NEEDS RESUBMISSION」のいずれかの値が retrunVal に等しいかどうかを確認しようとしています。印刷された、構文が正しくないのではないかと疑っています。誰か入力を提供できますか?
if ('GIN' or 'NOT READY' or 'TO BE ABANDON OR NEEDS RESUBMISSION' == returnVal):
print "INSIDE"
このような:
if returnValue in ('GIN', 'NOT READY', 'TO BE ABANDON OR NEEDS RESUBMISSION'):
print 'INSIDE'
これが標準的な慣用句inです。演算子を使用して、可能なすべての値を持つタプルのメンバーシップをテストします。or一連の'ed 条件よりもはるかにクリーンです。
あなたのコードは、論理的には次のようになります。
if 'GIN' exists
or if 'NOT READY' exists
or if 'TO BE ABANDON OR NEEDS RESUBMISSION' is equal to retVal
do something
Python の真理値に関するこのリンクを読んでください(これは paxdiablo の回答にも関連しています)。
より良いアプローチは、python の "in" ステートメントを使用することです。
if retVal in ['GIN', 'NOT READY', 'TO BE ABANDON OR NEEDS RESUBMISSION']:
do something
これはそれを行う1つの方法です:
if (returnVal == 'GIN') or (returnVal == 'NOT READY') or returnVal == '...':
より Pythonic なより良い方法は、次を使用することinです。
if returnVal in ['GIN', 'NOT READY', '...']:
つまり、(最初のケースでは)別々の条件を使用し、orそれらを一緒に使用します。
常に表示さINSIDEれる理由は、が条件のコンテキストで値'GIN'として効果的に扱われているためです。true
>>> if 'GIN':
... print "yes"
...
yes
とtrue or <anything>ですtrue。