これが機能しない理由:
file = "v3a2"
if "v1" or "v2" in file:
v1.write(total)
elif "v3" in file:
print "never here?????"
これをどのように定式化するのですか?
これが機能しない理由:
file = "v3a2"
if "v1" or "v2" in file:
v1.write(total)
elif "v3" in file:
print "never here?????"
これをどのように定式化するのですか?
if "v1" or "v2" in file:
と同等です
if ("v1") or ("v2" in file):
Trueこれは常にbool("v1")==True
あなたは言えた
if any(x in file for x in ["v1", "v2"]):
また
if "v1" in file or "v2" in file:
チェックする項目が 2 つまたは 3 つ以上ある場合は、 のバージョンの方がany見栄えがよくなります
試す
if "v1" in file or "v2" in file:
それ以外の
if "v1" or "v2" in file:
おそらく、Python Boolean Operationsのレビューが役立つかもしれません。概要のそのページの下部には、演算子の優先順位の表もあります。表を参照すると、in演算子は演算子よりも優先順位が高いorため、式は次のように解釈されることがわかります。
if ("v1") or ("v2" in file):
あなたが期待/意図したものではなく。
また、@ sepp2k が以下の有益なコメントで言及しているようorに、 よりも優先順位が高い場合in、式が として終了し、if ("v1" or "v2") in file:意図したとおりに機能しないことにも注意してください。
上記の演算子の優先順位が見つからなかったため、演算子の優先順位の別の表への直接リンクを次に示します。