1

Pythonが複数の用語を実行する方法を教えてください。

例えば:

   a = 0
   b = 0
   c = 0

   if a == 0 and b == 1 and c == 0:
   # test fails

Python は内部的にテストを 3 つの if に分割していると思います。ただし、次の 2 つのケースが考えられます。

  • Pythonは3つすべてを1つずつ実行し、そのうちの1つが間違っていると、テストは失敗します
  • またはpythonは1つずつ実行され、最初に失敗した場合はテストが失敗し、他の場合は実行されません

Pythonはこのテストを内部でどのように実行しますか?

ありがとう、よろしく、ヒューゴ

4

4 に答える 4

11

and短絡演算子です。

最初の引数が の場合、2 番目の引数が評価されますTrue。後続の引数についても同様です。

于 2013-09-17T08:33:34.913 に答える
5

これは条件句とは関係ありませんが、ブール演算子andor. それらは短絡演算子です。最初の値が False の場合、すぐに False が使用されます。それ以外の場合は、2 番目の値が評価されます。

良い例を次に示します。

>>> def a():
...     print 'a is running!'
...     return True
... 
>>> def b():
...     print 'b is running!'
...     return False
... 
>>> def c():
...     print 'c is running!'
...     return True
... 
>>> if a() and b() and c():
...     print 'hello!'
... 
a is running!
b is running!

bを返すのでFalsec必要がないので実行に終わらない。

于 2013-09-17T08:37:22.317 に答える
3

二番目。 and/orは短絡演算子です。必要がない場合、2 番目の引数は評価されません。ドキュメントboolean-operations-and-or-not を参照してください。

于 2013-09-17T08:32:21.097 に答える
3

Python は次の場合に「遅延評価」を使用します:ドキュメントifを参照してください

「式 x および y は最初に x を評価します。x が false の場合、その値が返されます。そうでない場合、y が評価され、結果の値が返されます。」

于 2013-09-17T08:32:22.113 に答える