一直以來,我覺得python中and
和or
的返回值是True
或False
。python
看 《Dive into Python》這本書時,發現他們並不返回布爾值,而是返回他們實際進行比較的值之一。linux
根據本身已經掌握的知識,設想下以下代碼的運算結果:bash
'a' and 'b' '' and 'b' 'a' and 'b' and 'c'
根據python的定義,在沒有看這部份內容以前,我認爲答案分別爲True
,False
,True
。其實運行以後才發現應該是這樣的:code
Python 2.7.13+ (default, Jul 19 2017, 18:15:03) [GCC 6.4.0 20170704] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 'a' and 'b' 'b' >>> '' and 'b' '' >>> 'a' and 'b' and 'c' 'c' >>>
緣由以下:orm
0
, ''
, []
, {}
, None在布爾表達式環境下爲假,其餘任何東西都爲真'a' and 'b'
'' and 'b'
相似的。or
的規則以下:get
本文做者: Yarving Liu
本文連接: http://yarving.historytale.co...
版權聲明: 本博客全部文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明出處!博客