3

私は Python を初めて使用し、最近 'or' 条件評価器について学びました。次のコードが「abcd」を与える理由を誰かが私に説明できますか:

     'abcd' or 'hijk' or 'lmno'

True を返すべきではありませんか? また、Python はこれらのステートメントをどのように評価しますか? 最初に「hijk」または「lmno」が必要ですか、それとも「abcd」または「hijk」を評価しますか? 基本的に右から左ですか、それとも左から右ですか?

4

3 に答える 3

0

簡単にチェック:

def cond(arg):
  print arg
  return arg

print cond("a") or cond("b") or cond("c")

"a" を 2 回出力します。または、評価が左から右に進み、遅延します。つまり、結果が判明するとすぐに部分式の評価を停止します。
None ではない文字列値は、条件 (この場合はブール "or" 式の一部) として評価されると True として扱われます。

于 2013-09-10T16:50:18.870 に答える