3.第三章节python中所有运算符运算规则和优先级最详细解释(算术运算符、复制运算符 、比较运算符 、逻辑运算符 、位运算符)

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

作者:Studying 开龙wu

物联沃分享整理
物联沃-IOTWORD物联网 » 3.第三章节python中所有运算符运算规则和优先级最详细解释(算术运算符、复制运算符 、比较运算符 、逻辑运算符 、位运算符)

发表回复