Python语句中OR逻辑运算符用例分析
李升伟 整理
问题:
请运行如下代码,并解释打印的结果:
a = 'python'
print('hello,', a or 'world')
b = ''
print('hello,', b or 'world')
解答:
运行代码后的输出结果为:
hello, python hello, world
关键逻辑解释
1. a = 'python' 时的行为
-
逻辑判断
a or 'world'-
a的值是'python'(非空字符串),在 Python 中非空字符串被视为 真值(Truthy)。 -
or运算符的规则是:返回第一个为真的值,因此直接选择a。 -
最终输出:
hello, python。
-
2. b = '' 时的行为
-
逻辑判断
b or 'world'-
b的值是空字符串'',在 Python 中空字符串被视为 假值(Falsy)。 -
or运算符会跳过假值,继续检查下一个值'world'(非空字符串,为真)。 -
最终输出:
hello, world。
-
Python 中 or 的底层规则
-
短路逻辑:
or会从左到右依次检查表达式中的值,返回 第一个为真的值,后续不再计算。 -
Truthy 与 Falsy:
-
Falsy 值:
False,0,''(空字符串),None, 空容器(如[],{},())。 -
Truthy 值:除上述外的其他值(如非空字符串、非零数字、非空容器)。
-
类似场景举例
若变量值为其他 Falsy/Truthy 类型,行为类似:
# 示例1:变量为 0(Falsy) c = 0 print(c or 100) # 输出 100 # 示例2:变量为列表(Truthy) d = [1, 2] print(d or [3, 4]) # 输出 [1, 2]
通过理解 or 的短路逻辑和 Truthy/Falsy 规则,可以高效控制默认值或条件分支。
(解答来自deepseek。)
