#43495: python 的邏輯運算


sam851015@gmail.com (多挖鼻孔有益身心健康)

學校 : 不指定學校
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2024-11-21 19:18:13
k873. Python駭客題-遞增數列 | From: [123.192.228.253] | 發表日期 : 2024-10-20 10:58

各位可以試試看 print([] and False)

 

python 的邏輯運算子 andor 實際上返回的並不是 True/False,而是和 True/False 等價的東西

 

透過官方文檔可以看到這個表格

Operation

Result
x or yif x is true, then x, else y
x and yif x is false, then x, else y

 

他們並不返回 True/False ,而是直接返回前面/後面的物件
只是這個物件可以被視為和 True/False 等價的東西

 

例如......

1 and 2 實際上返回的是 2
0 and 1 實際上返回的是 0
1 and 0 實際上返回的是 1

1 or 2 實際上返回的是 2
0 or 1 實際上返回的是 0
1 or 0 實際上返回的是 0

 

至於什麼物件會被視為和 True 等價的東西,什麼物件會被視為和 False 等價
官方文檔也有描述

內容用中文描述的話是這樣的

python 把下面這些常量定義成和 False 等價的東西

  • 定義為 False 的常量: None and False

  • 被視為 0 的數字: 00.00jDecimal(0)Fraction(0, 1)

  • 空的可迭代元素或集合: ''()[]{}set()range(0)

不屬於這些的都是 True

 

參考資料:

 

 

 
ZeroJudge Forum