一直以來,我以為python中and
和or
的返回值是true
或false
。
看 《dive into python》這本書時,發現他們並不返回布林值,而是返回他們實際進行比較的值之一。
根據自己已經掌握的知識,設想下如下**的運算結果:
'a' and 'b'
'' and 'b'
'a' and 'b' and 'c'
根據python的定義,在沒有看這部分內容之前,我認為答案分別為true
,false
,true
。其實執行之後才發現應該是這樣的:
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 ...