第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python邏輯表達式中的奇怪轉(zhuǎn)換

Python邏輯表達式中的奇怪轉(zhuǎn)換

胡說叔叔 2021-03-22 10:19:54
我注意到Python 2.7邏輯表達式的一種奇怪行為:>>> 0和False0>>>錯誤和0錯誤的>>> 1和False錯誤的>>>錯誤和1錯誤的并用True代替False>>> 0和True0>>> True和00>>> 1和True真的>>> True和11個Python將邏輯語句轉(zhuǎn)換為整數(shù)時,有任何規(guī)則嗎?為什么有時顯示0插入False和1插入True?更何況它為什么會返回這個?>>>“測試”或“測試”'測試'
查看完整描述

3 回答

?
慕姐4208626

TA貢獻1852條經(jīng)驗 獲得超7個贊

什么都沒有被轉(zhuǎn)換;Python布爾邏輯運算符反而會短路

請參閱布爾運算符文檔:

表達式x and y首先求值x; 如果x為false,則返回其值;否則為false。否則,y將求值并返回結(jié)果值。

表達式x or y首先求值x; 如果x為true,則返回其值;否則為false。否則,y將求值并返回結(jié)果值。

此外,等于的數(shù)字0以及空的字符串和容器都被認為是錯誤的。引用同一文檔:

在布爾運算的上下文中,以及當(dāng)控制流語句使用表達式時,以下值將解釋為false:False,,None所有類型的數(shù)字零以及空字符串和容器(包括字符串,元組,列表,字典,集合和Frozensets)。

結(jié)合這兩種行為意味著,對于0 and False,會0視為false并在評估False表達式之前返回。對于表達式True and 0,True被求值并發(fā)現(xiàn)它是一個真值,因此0將其返回。就ifandwhile和其他布爾運算符而言,該結(jié)果0也被認為是錯誤的。

您可以使用它來提供默認值,例如:

foo = bar or 'default'

要將非布爾值真正轉(zhuǎn)換為布爾值,請使用bool()type;它使用與布爾表達式相同的規(guī)則來確定輸入的布爾值:

>>> bool(0)

False

>>> bool(0.0)

False

>>> bool([])

False

>>> bool(True and 0)

False

>>> bool(1)

True

為了使圖片更完整,在布爾上下文中不被視為false的值將被視為true,包括任何自定義類。您可以通過在類上實現(xiàn)一個.__nonzero__()特殊的方法來更改它。如果未定義此類方法,.__len__()則也請參考。使用這兩種方法中的任何一種,您都可以發(fā)出信號,表明您的類型是數(shù)字,并且True如果非零,則應(yīng)考慮該類型;或者,它是一個容器,并且True如果不為空(長度超過0),則應(yīng)考慮該類型。


查看完整回答
反對 回復(fù) 2021-03-23
?
婷婷同學(xué)_

TA貢獻1844條經(jīng)驗 獲得超8個贊

那是因為0它本身就是虛假的價值。


>>> bool(0)

False


>>> bool(1)

True

0 and True0因為0是Falsy,AND條件一旦找到第一個falsy值便立即停止執(zhí)行并返回該值。如果所有值均為True,則返回最右邊的值。

OR將繼續(xù)檢查值,直到True找不到first為止,否則它將返回最后一個值。

來自docs

可以測試任何對象的真值,以在if或while條件中使用,或用作以下布爾運算的操作數(shù)。以下值被認為是錯誤的:

  • 沒有

  • 錯誤的

  • 任何數(shù)字類型的零,例如0, 0L, 0.0, 0j

  • 任何空序列,例如'', (), []

  • 任何空映射,例如{}。

  • 用戶定義的類的實例,如果該類定義了 __nonzero__()__len__()方法,則該方法返回整數(shù)零或布爾值False時。

所有其他值都被認為是真實的-因此許多類型的對象總是真實的。

除非另有說明,否則具有布爾結(jié)果的操作和內(nèi)置函數(shù)始終返回0或False表示false,返回1或True表示true。(重要的例外:布爾運算符or和and始終返回其操作數(shù)之一。)


查看完整回答
反對 回復(fù) 2021-03-23
  • 3 回答
  • 0 關(guān)注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號