文章目录
前言
在 Python 编程的世界里,运算符是构建逻辑和处理数据的基础工具。无论是简单的数值计算,还是复杂的条件判断,运算符都发挥着不可或缺的作用。本文将全面且深入地介绍 Python 中的各类运算符,并结合实际代码示例进行讲解,帮助大家更好地理解和掌握它们。
一、Python基础运算符
1.1 算术运算符
算术运算符用于进行基本的数学运算,是我们在编程中最常用的运算符之一。Python 支持的算术运算符如下:
# 算术运算符 + - * /
a = 10
b = 20
result = a + b
print(result)
result = a - b
print(result)
result = a * b
print(result)
result = a / b
print(result)
result = (a - b) * a
print(result
# 求幂次方
print(3 ** 2)
# 整数除整数得到float
print(4 / 2, 5 / 3)
# 整除的int
print(4 // 2, 5 // 3)
# 求余 求剩余
print(5 % 3, 50 % 3, 3 % 9, 4 % 2)
# 任意一个数余2,判断奇数,偶数
print(5 % 2, 4 % 2, 9 % 2)
# m % n 有n种情况,若结果为零,则m是n的倍数
print(4 % 2)
1.2 赋值运算符
赋值运算符用于将值赋给变量,除了基本的 = 之外,还有一些复合赋值运算符,它们可以简化代码并提高运算效率。常见的赋值运算符如下:
# 赋值运算符
a = 1
# 算术运算符优先与于赋值运算符
a = a + 1
print(a)
a += 1
print(a)
a += a
print(a)
a -= 1
print(a)
a -= a
print(a)
a = 5
a *= 2
print(a)
a /= -1
print(a)
a /= 5
print(a)
a //= 3
print(a)
a **= 3
print(a)
# 余数两边有浮点型float输出结果为float
# 结果为2
a = 20
a = a % 3
print(a)
# 结果为2.0
a = a % 3.0
print(a)
1.3 比较运算符
逻辑运算符用于组合多个条件判断,同样返回布尔值。Python 中的逻辑运算符有:
# 比较运算符,结果为True,False
print(10 > 5)
print(10 >= 10)
print(5 < 10)
print(5 <= 5)
# 等于号是 ==
print(10 == 10)
print(10 == "10", 10 != "10")
# python推荐连续比较
print(10 > 8 > 5 > 2 > 1)
print(10 > 8 > 30)
# 比较运算符小于算数运算符
a = 10 + 20 > 5 + 25
print(a)
# True为1,False为0
# 结果为36
a = 10 + True + 25
print(a)
1.4 逻辑运算符
逻辑运算符用于组合多个条件判断,同样返回布尔值。Python 中的逻辑运算符有:
# 逻辑运算符
# and or返回值是左侧或右侧
# and:并且(左侧右侧都为真则真)
# 左侧为真返回右侧,左侧为假返回左侧
print(100 and True)
print(0 and 100)
print(0 and False)
print(None and Trues)
# or:或者(左侧为真或右侧为真则为真)
# 左侧为真返回左侧,左侧为假返回右侧
print(0 or False)
print(100 or 0)
print(None or 100)
print("" or 1)
# not:非
# not 真 返回False
# not 假 返回True
1.5 位运算符
位运算符是对二进制数进行操作的运算符,在处理计算机底层数据、加密算法等场景中会经常用到。Python 中的位运算符有:
a = 10 #0b00001010
b = 20 #0b00010100
print(a & b)
# a | b 0b00011110
print(a | b)
# a ^ b 0b00011110
print(a ^ b)
#0b00011110
c = 30
#0b00101000
d = 40
print(c & d)
print(c | d)
print(c ^ d)
二、Python运算符运算顺序
在 Python 编程里,运算符是构建程序逻辑的关键组件。不同类型的运算符,如算术运算符、比较运算符、赋值运算符等,各自有着特定的运算规则,并且它们之间也存在优先级差异。只有深入理解这些内容,才能确保代码执行结果符合预期,避免逻辑错误。
2.1 算术运算符的运算顺序
算术运算符用于执行基本数学运算,它们的优先级顺序从高到低依次为:幂运算(**)、正负号(+、-)、乘(*)、除(/)、整除(//)、取模(%)、加(+)、减(-)。当多种算术运算符同时出现在表达式中时,先按照优先级执行,优先级相同的从左到右依次计算。
# 幂运算优先
print(2 ** 3 + 2) # 输出 10,先计算 2 ** 3 = 8,再计算 8 + 2 = 10
# 正负号优先于乘除
print(-3 * 2) # 输出 -6,先确定 -3 的负号,再计算 3 * 2 = 6
# 乘除、整除、取模优先级相同,从左到右计算
print(10 / 2 * 3) # 输出 15.0,先 10 / 2 = 5.0,再 5.0 * 3 = 15.0
print(10 % 3 * 2) # 输出 2,先 10 % 3 = 1,再 1 * 2 = 2
# 加减法优先级最低
print(10 + 5 - 3) # 输出 12,先 10 + 5 = 15,再 15 - 3 = 12
2.2 赋值运算符的运算顺序
赋值运算符(=、+=、-= 等)用于将右侧的值赋给左侧的变量,其优先级最低,在所有其他运算完成后才执行。需要注意的是,赋值操作本身并不返回一个具体的数值参与其他运算,而是直接改变变量的值。
x = 5 + 3
print(x) # 输出 8,先计算 5 + 3 = 8,再将 8 赋值给 x
y = 10
y *= 2 + 3
print(y) # 输出 50,先 2 + 3 = 5,再 10 * 5 并将结果赋值给 y
2.3 比较运算符的运算顺序
比较运算符用于比较两个值的关系,返回布尔值(True 或 False),其优先级低于算术运算符。在包含算术运算和比较运算的表达式中,先进行算术运算,再进行比较运算。
print(5 + 3 > 6) # 输出 True,先 5 + 3 = 8,再判断 8 > 6
print(10 % 3 == 1) # 输出 True,先 10 % 3 = 1,再判断 1 == 1
2.4 逻辑运算符的运算顺序
逻辑运算符中,not 的优先级最高,其次是 and,最后是 or。在复杂逻辑表达式里,not 先对单个条件取反,and 要求所有条件都为 True 结果才为 True,or 只要有一个条件为 True 结果就为 True。
a = True
b = False
# 输出 True,先 not a = False,再 False and b = False,最后 False or a = True
print(not a and b or a)
# 输出 True,先 a or b = True,再 not b = True,最后 True and True = True
print((a or b) and not b)
2.5 位运算符的运算顺序
位运算符是对二进制数进行操作的运算符,其优先级顺序从高到低为:按位取反(~)、左移(<<)、右移(>>)、按位与(&)、按位异或(^)、按位或(|)。位运算符的优先级高于比较运算符、逻辑运算符,低于算术运算符(括号、幂运算除外)。
# 输出 2,先 2 << 1 = 4(二进制 100),再 100 & 011 = 010(十进制 2)
print(2 << 1 & 3)
# 输出 2,先 3 | 2 = 3(二进制 011 | 010 = 011),再 011 ^ 001 = 010(十进制 2)
print(3 | 2 ^ 1)
总结
Python 的运算符种类丰富,功能强大,它们是编写高效、简洁代码的基础。通过本文的介绍和示例,相信大家对 Python 运算符有了更全面和深入的理解。在实际编程过程中,合理运用不同类型的运算符,能够帮助我们更好地解决问题,实现各种复杂的功能。
掌握 Python 运算符的运算顺序是编写正确程序的基础。在实际开发中,当对运算顺序不确定时,建议使用括号明确运算优先级,以增强代码的可读性和准确性。通过不断练习和实践,便能熟练运用这些规则,高效编写出逻辑清晰的 Python 代码。