Python中逻辑运算符(and/or)与按位运算符(&/|/^)的区别详解
本文详细解析Python中逻辑运算符(and、or)与按位运算符(&、|、^)的核心区别。逻辑运算符基于布尔值进行短路计算,返回最后一个参与运算的操作数;按位运算符则对整数的二进制位逐位进行与、或、异或运算。文章通过具体代码示例展示了短路机制在函数调用和返回值处理中的表现,帮助开发者准确区分两种运算场景。
按位运算符与二进制运算原理
按位运算符(&、|、^)主要执行二进制层面的逻辑运算。其原理是将参与运算的数字转换为二进制形式,然后对每一位上的0和1执行相应的逻辑判断,最终将计算结果转换回十进制数字输出。
3 & 2
=0111 & 0010
=0010
=2
二进制逻辑运算遵循特定的真值表规则,具体包括与(&)、或(|)和异或(^)三种基本操作。
&:0&0=0; 0&1=0; 1&0=0; 1&1=1。
|:0|0=0; 0|1=1; 1|0=1; 1|1=1。
^:0^0=0; 0^1=1; 1^0=1; 1^1=0。
代码的执行顺序严格遵循从上到下、从左到右的原则,这决定了表达式中各部分的求值时机。
逻辑运算符(and/or)的短路机制
一、逻辑运算符(and、or)的行为机制
1. and 运算符:从左向右依次求值。一旦遇到表达式结果为假(False),立即返回该假值,后续表达式不再执行(逻辑短路);若遇到无返回值的函数,则返回None并短路后续表达式。若所有表达式均为真,则返回最后一个表达式的结果。
例1:演示遇到假值时触发短路机制的情况
def print_1():
print('已经运行这里了')
a = 99 and 3==1 and print_1()
print(a)
输出结果如下:

例2:演示遇到无返回值函数时的处理逻辑
def print_1():
print('已经运行这里了')
a = 99 and 3==3 and print_1() and False
print(a)
输出结果如下:

例3:演示所有表达式均为真时的返回值
def print_1():
print('已经运行这里了')
return 1==1
a = 99 and 3==3 and print_1() and 99
print(a)
输出结果如下:

2. or 运算符:从左向右依次求值。一旦遇到表达式结果为真,立即返回该真值,后续表达式不再执行(逻辑短路);若遇到无返回值的函数,则继续执行后续表达式。若所有表达式均为假,则返回最后一个假值(通常为False)。
例1:演示遇到真值时触发短路机制的情况
def print_1():
print('已经运行这里了')
b = 99==1 or 3==3 or print_1()
print(b)
输出结果如下:

例2:演示遇到无返回值函数时继续执行后续表达式的逻辑
def print_1():
print('已经运行这里了')
b = 99==1 or 3==1 or print_1() or 99
print(b)
输出结果如下:

例3:演示所有表达式均为假时的返回值
def print_1():
print('已经运行这里了')
b = 99==1 or 3==1 or print_1() or False
print(b)
输出结果如下:

至此,关于Python中逻辑运算符(and、or)与按位运算符(&、|、^)的区别已介绍完毕。如需了解更多相关内容,可搜索本站往期文章或浏览后续推荐内容,感谢支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













