二、运算符全解析

Python 提供了丰富的运算符集合,用于执行各种数学计算、逻辑判断和变量操作。本文将系统介绍五大类运算符:算术运算符、比较运算符、逻辑运算符、赋值运算符及其他优先级规则,帮助您构建坚实的编程基础。



文章目录

  • 一、算术运算符 (Arithmetic Operators)

  • 二、比较运算符 (Comparison Operators)

  • 三、逻辑运算符 (Logical Operators)

  • 四、赋值运算符 (Assignment Operators)

  • 五、位运算符 (Assignment Operators)

  • 六、成员运算符 (Assignment Operators)

  • 七、身份运算符

  • 八、运算符优先级 (Operator Precedence)

  • 九、综合应用示例

  • 总结



一、算术运算符 (Arithmetic Operators)

算术运算符用于执行基本数学运算,支持整数和浮点数操作:

示例



# -------------算术运算符---------------
a = 20
b = 10
c = a + b
print(a , "+" , b , "的结果为" , c)

c = a - b
print(a , "-" , b , "的结果为" , c)

c = a * b 
print(a , "*" , b , "的结果为" , c)

c = a / b                               # 注意:结果为浮点类型
print(a , "/" , b , "的结果为" , c)

c = a % b 
print(a , "%" , b , "的结果为" , c)

a = 2
b = 3
c = a ** b
print(a , "的" , b , "次方结果为" , c)


a = 10
b = 3
c = a // b 
print(a , "//" , b , "的结果为" , c)
print("-" * 30)                        # 输出30次-


输出结果:

20 + 10 的结果为 30
20 - 10 的结果为 10
20 * 10 的结果为 200
20 / 10 的结果为 2.0
20 % 10 的结果为 0
2 的 3 次方结果为 8
10 // 3 的结果为 3



二、比较运算符 (Comparison Operators)

比较运算符用于比较两个值,返回布尔值 True 或 False:

示例



注意:除了不同数据类型的数据不能比较大小

# -------------比较运算符---------------

num1 = 10
num2 = 20
print(num1 == num2)  # False

print(num1 != num2)  # True

print(num1 > num2)   # Flase

print(num1 < num2)   # True

print(num1 >= num2)  # False

print(num1 <= num2)  # True

num3 = 'abc'

# 注意:不同的数据类型之间不能进行大小的比较
print(num1 > num3)

# 如果是字符串比较大小,是从最左边开始逐个比较字符串中相应位置的字符的ASCII码
print('5' > '6')   # False
print('15' > '6')  # False



三、逻辑运算符(Logical Operators)

逻辑运算符用于组合条件语句,支持短路求值:

运算符 说明
and 与,x and y,若 x 为 False 返回 x 的值,否则返回 y 的值
or 或,x or y,若 x 为 True 返回 x 的值,否则返回 y 的值
not 非,not x,若 x 为 True 返回 False,若 x 为 False 返回 True

示例


# -------------逻辑运算符---------------
b1 = False
b2 = True

print(b1 and b2)  # False

print(b1 or b2)   # True

print(not(b1))    # True

print(5 and 8)    # 8 非0表示True,0表示False

print(0 and 8)    # 0

print(5 or 8)     # 5

print(0 or 8)     # 8

print(not(5))     # False



四、赋值运算符(Assignment Operators)

赋值运算符用于给变量赋值,支持复合运算:

运算符 说明 实例
= 赋值 a = 1
+= 加法赋值 a += 2,等同于 a = a + 2
-= 减法赋值 a -= 2,等同于 a = a - 2
*= 乘法赋值 a *= 2,等同于 a = a * 2
/= 除法赋值 a /= 2,等同于 a = a / 2
//= 整除赋值 a //= 2,等同于 a = a // 2
%= 模赋值 a %= 2,等同于 a = a % 2
**= 幂赋值 a **= 2,等同于 a = a ** 2
:= 海象运算符,在表达式中同时进行赋值和返回赋值。Python 3.8 版本新增 num1 = 20 print((num2 := 3**2)) print(num1) print(num2)

示例


# -------------赋值运算符---------------
num3 = 30
num4 = 40
num5 = num3 + num4
print(num5)

num3 += 50  # num3 = num3 + 50
print(num3)


输出结果:
70
80



五、位运算符

运算符 说明 实例
& 按位与 a & b
` ` 按位或
^ 按位异或 a ^ b
~ 按位取反 ~ a
<< 按位左移 a << 1
>> 按位右移 a >> 1

1) 原码反码补码

一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1。

类型 正数 7 负数 -7
原码 符号位加上真值的绝对值 00000111 符号位加上真值的绝对值 10000111
反码 等于原码 00000111 原码符号位不变,其余位取反 11111000
补码 等于原码 00000111 反码的基础上 +1 11111001

2) 正数的与、或、异或、非运算

正数与运算:17 & 13
操作数 二进制
17 00010001
13 00001101
结果 00000001
正数或运算:17 | 13
操作数 二进制
17 00010001
13 00001101
结果 00011101
正数异或运算:17 ^ 13
操作数 二进制
17 00010001
13 00001101
结果 00011100



六、成员运算符

运算符 说明 实例
in 在指定的序列中找到值返回 True,否则返回 False a in ['a', 'b', 'c']
not in 在指定的序列中没有找到值返回 True,否则返回 False a not in ['a', 'b', 'c']

示例

# -------------成员运算符---------------
num6 = 1
num7 = 20
test_list = [1,2,3,4,5]

print(test_list)

print(num6 in test_list) # True 判断1是不是列表中的的成员

print(num7 not in test_list) # True



七、身份运算符

运算符 说明 实例
is 判断两个标识符是不是引用自相同对象 a is b,类似 id(a) == id(b)。如果引用的是同一个对象则返回 True,否则返回 False
is not 判断两个标识符是不是引用自不同对象 a is not b,类似 id(a) != id(b)。如果引用的不是同一个对象则返回 True,否则返回 False

示例

# -------------身份运算符---------------
m = 20
n = 20
q = 30

print(m is n)  # True 判断m和n在内存中是否指向同一个地址

print(n is q)  # False

print(n is not q)  # True


# id() 用于获取对象在内存中的地址
print(id(m) == id(n)) # True

print("-" * 30)


# -------------is和==的区别---------------
a = [1,2,3]
b = a 

print(b is a)  # True
print(b == a)  # True

b = a[:]
print(b)
print(b is a)  # False
print(b == a)  # True



八、运算符优先级 (Operator Precedence)

Python 遵循特定优先级规则,括号()可强制改变计算顺序:

优先级示例

result = 3 + 4 * 2 ** 2   # 相当于 3 + (4 * (2 ** 2)) = 19
print(result)

记忆技巧

  • 先算 PEDMAS(括号、指数、乘除、加减)
  • 逻辑运算符 and 优先级高于 or
  • 比较运算符优先级高于逻辑运算符但低于算术运算符



九、综合应用示例

# 计算折扣价格
price = 100
discount_rate = 0.2
is_member = True

# 应用运算符优先级规则
final_price = price * (1 - discount_rate) if is_member else price
print(f"最终价格: {final_price}")  # 输出 80.0

# 复杂条件判断
age = 25
has_ticket = True
can_enter = (age >= 18 or has_ticket) and not (age < 13 and not has_ticket)
print(f"是否可以进入: {can_enter}")  # 输出 True



总结

1、算术运算符:掌握基本运算和特殊用法(如字符串重复)

2、比较运算符:注意 is 与 == 的区别,理解成员检测

3、逻辑运算符:利用短路特性优化条件判断

4、赋值运算符:灵活使用复合赋值和解包赋值

posted @ 2026-08-02 20:19  jock_javaEE  阅读(3)  评论(0)    收藏  举报