- 前提背景
 
- if 判断
 
- 所有非0的数值都判断为True
 - 值为0, 判断为False
 
- and/or 逻辑运算
 
- 用于布尔值时
 
- 用于单个布尔值之间的比较
 - 不可用于series这样的多个布尔值https://blog.51cto.com/u_16055028/8969644
 
- 用于数值时
 
- 所有非0的数值都判断为True
 - 遇到0, 判断为False (转为普通逻辑运算)
 - 没有遇到0
 
- and 返回比较后的值
 - or 返回第一个值
 - 又有and 又有or 返回第一个and/or的判断结果
 
- 用于元组, 似乎同上
 
1 and 2 or 3  # 返回2
1 or 2 and 3  # 返回1(True, False) and (True, True)  # 返回and后面的(True, True)
(True, False) or (True, True)  # 返回or前面的(True, False)
(1, 2) and (3, 4)  # 返回and后的元组
(1, 2) or (3, 4)  # 返回or前的元组- &/|
 
- 用于布尔值时
 
- 可用于单个布尔值
 - 可用于series这样的多个布尔值
 - 不可用于元组
 
- 用于数值时
 
- 位运算
 
在 Python 中,and、or、& 和 | 都是用于进行逻辑运算的,但它们的用法和含义有所不同。
and和or是逻辑运算符,主要用于比较两个布尔值或者在条件语句中使用。例如:
a = True
b = False
print(a and b)  # 输出 False
print(a or b)   # 输出 True在 Python 中,and 和 or 不仅可以返回 True 或 False,还可以返回比较后的值¹。例如:
a = 1 and 2 and 3
print(a)  # 输出 3,全部都 True,所以回傳最右邊的值
b = 1 and 0 and 2
print(b)  # 输出 0,遇到 0 ( False ),回傳第一個 False 的值就是 0
c = 1 or 2 or 3
print(c)  # 输出 1,全部都 True,所以回傳第一個值
d = 1 or 0 or 3
print(d)  # 输出 1,遇到 0 ( False ),回傳第一個 True 的值就是 1&和|是位运算符,主要用于进行二进制位的运算。例如:
a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
print(a & b)  # 输出 12 = 0000 1100
print(a | b)  # 输出 61 = 0011 1101如果 a 和 b 是数值变量,那么 & 和 | 就表示位运算,and 和 or 则依据是否非0来决定输出²。例如:
# 1&2,2在二进制里面是10,1在二进制中是01,那么01与运算10得到是0
print(1 & 2)  # 输出为 0
print(1 | 2)  # 输出为3希望这个解释能帮助你理解 Python 中 and、or、& 和 | 的区别。如果你还有其他问题,欢迎随时向我提问。¹²源: 与必应的对话, 2023/12/26
(1) 邏輯判斷 ( and 和 or ) - Python 教學 | STEAM 教育學習網. https://steam.oxxostudio.tw/category/python/basic/and-or.html.
(2) Python 中 (&,|)和(and,or)之间的区别_python & &&-CSDN博客. https://blog.csdn.net/weixin_40041218/article/details/80868521.
(3) python中的and or的区别_Python:and/or 与 & /| 到底有什么区别 - CSDN博客. https://blog.csdn.net/weixin_39712969/article/details/113502535.
(4) undefined. http://aima.cs.berkeley.edu/data/iris.csv.










