Python的and和or的返回值

2021-09-13 16:26:49 字數 925 閱讀 9350

一直以來,我以為python中andor的返回值是truefalse

看 《dive into python》這本書時,發現他們並不返回布林值,而是返回他們實際進行比較的值之一。

根據自己已經掌握的知識,設想下如下**的運算結果:

'a' and 'b'

'' and 'b'

'a' and 'b' and 'c'

根據python的定義,在沒有看這部分內容之前,我認為答案分別為truefalsetrue。其實執行之後才發現應該是這樣的:

python 2.7.13+ (default, jul 19 2017, 18:15:03)

[gcc 6.4.0 20170704] on linux2

>>> 'a' and 'b'

'b'>>> '' and 'b'

''>>> 'a' and 'b' and 'c'

'c'>>>

原因如下:

and運算時,從左到右演算表示式的值。0,'',,{}, none在布林表示式環境下為假,其他任何東西都為真

如果and運算中,所有的值都為真,那麼and返回最後乙個值。如:'a' and 'b'如果某個值為假,那麼and立即返回該假值(短路運算),如:'' and 'b'

類似的。or的規則如下:

從左到右演算

如果有乙個值為真,立即返回該值

所有所有的值都為假,返回最後乙個假值

Python高階篇 python之函式的返回值

返回值簡介 指定返回值與隱含返回值 指定 return 返回值函式舉例 defshowplus x print x returnx 1 num showplus 6 add num 2 print add 輸出結果 隱含 return none 舉例 defshowplus x print x nu...

返渡島 迷途知返的傳說

孑影吟風 2015 9 28 返渡島,關於它有乙個美麗的傳說,只是,傳說的詩章在無盡歲月的足跡中變得殘缺不全,在歷史的洪流之中僅存下點點滴滴。返渡,本為迷途知返之意。意在警示眾人不要在歧途上漸行漸遠,早些歸返,回首返正。傳說,在大海深處,海洋之心,有乙個巨大的移動漩渦,漩渦被一種神秘的力量操縱著,不...

python 中關於ROS的 TF 變換函式返回值

測試 launch 檔案如下,test.py 廣播 tf 變換,listen tf.py 檔案監聽tf變換。廣播 test.py 內容如下,發布了兩個tf 的資料 usr bin env python coding utf 8 import rospy from geometry msgs.msg ...