擅长:python、mysql、java
<p>你的问题来了,因为你相信<code>and</code>和<code>or</code>仅仅是右联想,它们之间没有优先权。你知道吗</p>
<p><code>and</code>在<code>or</code>之前求值。你知道吗</p>
<p><code>1 and 2 or 3</code>>;<code>2</code></p>
<p><code>1 or 2 and 3</code>>;<code>1</code></p>
<pre><code>>>> def foo():
... print 'foo'
... return 0
...
>>> def bar():
... print 'bar'
... return 1
...
>>> def baz():
... print 'baz'
... return 2
...
>>> foo() and bar() or baz()
foo
baz
2
</code></pre>