在Python中,逻辑“或”通过or
-
基础语法与行为规则
plaintext复制连接两个表达式,返回第一个为真的值或最后一个为假的值。例如:or
python复制print(3 > 5 or 10) # 输出10(因3>5为假,返回右侧值) print("hello" or None) # 输出"hello"(左侧为真,直接返回)
这一特性常用于变量默认值赋值:
plaintext复制。port = user_input or 8080
-
短路求值的实际应用
当左侧条件满足时,右侧代码不会执行。例如:python复制def check_file(): return False if check_file() or open("missing.txt"): pass # 若check_file返回True,则不会触发文件打开操作
这种特性可避免不必要的计算或潜在错误。
-
多条件组合与优先级
plaintext复制常与or
plaintext复制搭配使用,需注意运算符优先级(and
plaintext复制高于and
plaintext复制)。推荐使用括号明确逻辑:or
python复制if (a == 1 or b == 2) and c == 3: # 更易读的逻辑组合
-
特殊场景注意事项
- 非布尔类型的真值判断:空列表、0、plaintext复制等被视为假
None
- plaintext复制与按位或
or
plaintext复制的区别:后者用于二进制位运算,如|
plaintext复制结果为75 | 3
- 非布尔类型的真值判断:空列表、0、
-
进阶用法:生成器与推导式
结合条件表达式实现高效筛选:python复制filtered = [x for x in data if x < 0 or x > 100] # 筛选异常值 any_positive = any(num > 0 or math.isnan(num) for num in values)
掌握
or
any()