1.算术运算符
2.复制运算符
3.比较运算符
4.逻辑运算符
5.位运算符
Python 中的运算符用于执行各种数学和逻辑运算。它们的他优先级如下图
一、算术运算符
算术运算符用于执行基本的数学运算,这些运算符包括加法(+)、减法(-)、乘法(*)、除法(/)、整除(//)、取模(%)和幂运算(**)。
1.算术运算符运算规则和代码
a = 10
b = 2
print(a + b) # 12
print(a - b) # 8
print(a * b) # 20
print(a / b) # 5.0
print(a // b) # 5
print(a % b) # 0
print(a ** 2) # 100
注意这里除数还是不能为零
2、算术运算符优先级
从高到低
第一级:幂运算**
第二级:乘*、除/、取余%、整除//
第三级:加+、减-
注意事项:
1.当使用除法(/)时,即使两个操作数都是整数,结果也会是浮点数。
2.整除(//)总是返回整数结果,忽略小数部分,即使是负数也是如此(遵循向下取整的规则)。
3.取模(%)的结果的符号与被除数相同。
4.幂运算(**)可以接受任何实数作为指数,但操作数之一必须是浮点数或整数;如果两个操作数都是整数,并且指数为正,则结果也是整数,但如果指数是负数或小数,则结果将是浮点数。
二、赋值运算符
在Python中,赋值运算符主要是等号(=),用于将右侧的值或表达式的计算结果赋给左侧的变量。赋值操作是Python(以及大多数编程语言)中最基本的操作之一,它用于创建变量或更新变量的值。
1.赋值运算符运算规则和代码
x = 5
y = 2
x += y # x = x + y, 结果x = 7
print(x)
x -= y # x = x - y, 结果x = 5
print(x)
x *= y # x = x * y, 结果x = 14
print(x)
x /= y # x = x / y, 结果x = 5
print(x)
x %= y # x = x % y, 结果x = 1
print(x)
y **= x # y = y ** x, 结果y = 1
print(y)
y //= x # y = y // x, 结果y = 5
print(y)
2.链式赋值
Python也支持链式赋值,允许你在一行中给多个变量赋相同的值。
a = b = c = 0 # 变量a、b和c都被赋值为0
print(a,b,c)
3.解包赋值
在Python中,你还可以使用解包赋值(unpacking assignment)来将可迭代对象(如列表、元组等)中的值赋给多个变量。
a,b=10,20 #相当于a=10,b=20
data = [1, 2, 3]
x, y, z = data # x=1, y=2, z=3
# 也可以用于元组
t = (4, 5, 6)
a, b, c = t # a=4, b=5, c=6
注意事项:
1.在使用赋值运算符时,要确保右侧的值或表达式的结果是合法的,且左侧必须是可赋值的(即,它必须是一个变量、可索引的元素、可更新的属性等)。
2.赋值操作会返回赋值后的值,但在大多数情况下,我们不会显式地使用这个返回值。
3.变量名在赋值之前不需要声明其类型,Python会在赋值时自动确定变量的类型。这是Python的动态类型系统的一个特性。
三、比较运算符(关系运算符)
比较运算符(Comparison Operators)是用于比较两个值并根据比较结果返回布尔值(True 或 False)的运算符。这些运算符在大多数编程语言中都是基本且广泛使用的,它们允许程序进行条件判断。
a = 5
b = 5
print(a == b) # 输出: True
a = 5
b = 6
print(a != b) # 输出: True
a = 5
b = 3
print(a > b) # 输出: True
a = 3
b = 5
print(a < b) # 输出: True
a = 5
b = 4
print(a >= b) # 输出: True
a = 4
b = 5
print(a <= b) # 输出: True
注意:
比较运算符的结果总是布尔值True或False,这使得它们非常适合用于控制流语句(如if语句)的条件判断中。
四、逻辑运算符
Python 中的逻辑运算符用于组合或修改布尔表达式的值。这些运算符主要用于条件判断,如 if 语句中。Python 支持三种主要的逻辑运算符:
1.逻辑与(AND):使用 and 关键字。当且仅当两个表达式都为 True 时,结果才为 True。
a = True
b = False
print(a and b) # 输出: False
print(True and True) # 输出: True
2.逻辑或(OR):使用 or 关键字。当两个表达式中至少有一个为 True 时,结果就为 True。
a = True
b = False
print(a or b) # 输出: True
print(False or False) # 输出: False
3.逻辑非(NOT):使用 not 关键字。它用于反转表达式的布尔值。如果表达式为 True,则 not 表达式的结果为 False;反之亦然。
a = True
print(not a) # 输出: False
print(not False) # 输出: True
注意:
在 Python 中,逻辑运算符的优先级是 not 高于 and,and 高于 or。但是,建议使用括号来明确指定运算的顺序,以使代码更清晰、更易于理解。
逻辑运算符经常与比较运算符一起使用,以构建复杂的条件表达式。例如:
age = 20
if age >= 18 and age <= 30:
print("你是年轻人。")
# 或者
if age >= 18 or age <= 10:
print("你是成年人或儿童。")
# 使用 not 运算符
if not (age < 18):
print("你至少年满18岁。")
五、位运算符
位运算符(Bitwise Operators)是对整数在二进制表示形式下直接进行操作的运算符。这些运算符允许你对数字的位进行与(AND)、或(OR)、异或(XOR)、取反(NOT)等操作,以及左移(Left Shift)和右移(Right Shift)操作。位运算符通常用于系统编程、图形处理、加密算法等领域,因为它们可以高效地处理二进制数据。
1.按位与(AND):&
对两个数的二进制表示进行按位与操作。只有两个相应的位都为 1 时,结果位才为 1。
a = 60 # 0011 1100
b = 13 # 0000 1101
print(a & b) # 输出: 12 (0000 1100)
2.按位或(OR):|
对两个数的二进制表示进行按位或操作。只要两个相应的位中有一个为 1,结果位就为 1。
a = 60 # 0011 1100
b = 13 # 0000 1101
print(a | b) # 输出: 61 (0011 1101)
3.按位异或(XOR):^
对两个数的二进制表示进行按位异或操作。当两个相应的位不相同时,结果位为 1。
a = 60 # 0011 1100
b = 13 # 0000 1101
print(a ^ b) # 输出: 49 (0011 0001)
4.按位取反(NOT):~
对数的二进制表示进行按位取反操作。即,将所有的 0 变为 1,所有的 1 变为 0。注意,对于整数,~ 运算符会先按该数的二进制表示的长度(补码形式)执行取反,再得到其补码作为结果,因此结果是一个负数(如果原数是正数的话)。
a = 60 # 0011 1100
print(~a) # 输出: -61(在 Python 3 中,整数是无限精度的,这里展示的是取反后的二进制补码表示的十进制值)
5.左移(Left Shift):<<
将数的二进制表示向左移动指定的位数,移动过程中超出的位将被丢弃,而在右侧边缘超出的部分将用 0 填充。
a = 60 # 0011 1100
print(a << 2) # 输出: 240 (1111 0000)
6.右移(Right Shift):>>
将数的二进制表示向右移动指定的位数,移动过程中超出的位将被丢弃。对于正数,左侧边缘超出的部分用 0 填充;对于负数,填充方式取决于系统(Python 使用算术右移,即保持数的符号不变)。
a = 60 # 0011 1100
print(a >> 2) # 输出: 15 (0000 1111)
注意:
在 Python 中,所有的位运算符都应用于整数类型(int)。如果你尝试对非整数类型(如浮点数或字符串)使用位运算符,Python 将抛出 TypeError