沒有邏輯運算符聲明,我有以下Python代碼:如果在蟒蛇
value = 1.9
if value:
#do something
else:
#do something else
這裏會發生什麼?我無法理解,因爲value
不是布爾值。
沒有邏輯運算符聲明,我有以下Python代碼:如果在蟒蛇
value = 1.9
if value:
#do something
else:
#do something else
這裏會發生什麼?我無法理解,因爲value
不是布爾值。
Python有truthy岬其中非布爾值基本上是「強制」到布爾者的概念,如圖here:
4.1真值測試
任何對象都可以是測試真值,用於
if
或while
條件或作爲下面布爾運算的操作數。下面的值被認爲是假:
None
False
- 任何數值類型的零,例如,
0
,0.0
,0j
。- 任何空序列,例如
''
,()
,[]
。- 任何空映射,例如,
{}
。- 用戶定義類的實例,如果類定義了
__bool__()
或__len__()
方法,則該方法返回整數零或布爾值False
。所有其他值都被認爲是真的 - 因此許多類型的對象總是爲真。
操作和內置功能有一個布爾結果總是返回
0
或False
假,1
或True
真正的,除非另有說明。 (重要的例外:布爾運算or
和and
總是返回自己的一個操作數)。
底線是1.9
來下的「所有其他值被認爲是真正的」的條款,因爲它符合所有值的那會被認爲是虛假的。最接近的是第三個(數字類型),但由於它不是零,所以它不會相當到達那裏。
任何對象都可以測試真值,以用於if或if while 條件或下面的布爾操作的操作數。下面 值被認爲是假:
- 無
- 假
- 任何數值類型的零,例如,0,0L,0.0,0j的。
- 任何空序列,例如'',(),[]。
- 任何空映射,例如{}。用戶定義的類的
- 情況下,如果類定義了一個 非零()或LEN()方法中,當該方法返回整數零或布爾值假
https://docs.python.org/2.4/lib/truth.html
所以,因爲價值不是這些事情之一,它需要的是,而不是其他!
舊文檔...在這種情況下仍然好... – mgilson
檢查此documentation materials。在python中,就像許多編程語言一樣。 0, '', []
類型的值給出False
,而其他任何值返回True
。
它將會是False您可以測試python如何使用bool()評估布爾值。例如bool(1)= True。 bool(0)= False。布爾(「任何字符串」)=真。 bool(「」)= False。 bool(2.2)= true。非零數字總是爲真。非空字符串總是如此。非空列表是真實的,等等 – gtalarico