2016-03-31 66 views
-4

我明白0代表false1代表true,所以not 1意味着falsenot 0意味着真實的,但這樣的事情not 3not 4等等,爲什麼他們的意思false?因爲not 3可能有1的機會。Python的不是A或A%B

+1

'not x'其中x≠0是'False'。 – Maroun

+0

*因爲'不是3'可能有'1'的機會。*有趣。爲什麼會這樣? –

+0

你最初的假設是錯誤的,0並不代表虛假。 –

回答

1

這就是計算機邏輯。一切都通過0和1的組合引入到機器中。每個邏輯都有2個表面FalseTrue,它們用0和1表示。因此,Python用於評估布爾對象的0和1基本上不是某些整數。 bool對象本身只是int的一個子類,具有不同的屬性(如表示形式)並缺少很多整數的屬性。

而在蟒約Truth Value Testing

任何對象都可以用於真值在if或while條件或如下的布爾運算的操作數進行測試,以供使用。下面的值被認爲是假:

  • 任何數值類型的零,例如,0,0L,0.0,0j的。
  • 任何空序列,例如'',(),[]
  • 任何空映射,例如,{}。用戶定義的類的

情況下,如果類定義了一個或__nonzero__()方法__len__(),當該方法返回整數零或布爾值假。

所有其他值都被認爲是真的 - 所以許多類型的對象總是如此。

相關問題