Python3 运算符

Python3 运算符


🎯 学习目标

掌握 Python 中各类运算符的使用方法,

包括:

  • 算术运算符、
  • 比较运算符、
  • 逻辑运算符、
  • 位运算符等,

并能在实际项目中灵活运用。

理解运算符优先级与结合性,

以及其在代码逻辑控制中的作用。


🔑 核心重点

分类 内容
算术运算符 +, -, *, /, //, %, **
比较运算符 ==, !=, >, <, >=, <=
逻辑运算符 and, or, not
赋值运算符 =, +=, -=, *=, /=, //=, %=, **=
成员运算符 in, not in
身份运算符 is, is not
位运算符 &, `
运算符优先级 掌握常见运算符优先级顺序,避免歧义
实际应用场景 条件判断、数据处理、循环控制、算法实现等

📚 详细讲解

一、什么是运算符?

运算符是用于对一个或多个操作数进行操作的符号。

Python 支持丰富的运算符类型,适用于各种数据类型的运算。

示例:

a = 10
b = 3

# 算术运算
print(a + b)  # 输出:13
print(a ** b)  # 输出:1000(10 的 3 次方)

# 比较运算
print(a > b)  # 输出:True

# 逻辑运算
print(a > 5 and b < 5)  # 输出:True

二、算术运算符

运算符 描述 示例 结果
+ 加法 2 + 3 5
- 减法 5 - 2 3
* 乘法 4 * 3 12
/ 除法(浮点) 7 / 2 3.5
// 整除 7 // 2 3
% 取余 7 % 2 1
** 幂运算 2 ** 3 8

📌 注意:

  • 使用 / 总是返回浮点数。
  • // 和 % 在负数情况下行为不同(需注意取整方向)。

三、比较运算符

运算符 描述 示例 结果
== 等于 5 == 5 True
!= 不等于 5 != 3 True
> 大于 6 > 4 True
< 小于 3 < 5 True
>= 大于等于 5 >= 5 True
<= 小于等于 4 <= 6 True

📌 特点:

  • 可以比较数字、字符串、列表等任意可比较对象。
  • 字符串比较按 Unicode 值逐字符比较。

四、逻辑运算符

运算符 描述 示例 结果
and 与 True and False False
or 或 True or False True
not 非 not True False

📌 短路特性:

  • and 若第一个为假,直接返回第一个值。
  • or 若第一个为真,直接返回第一个值。

五、赋值运算符

运算符 描述 示例 等价表达式
= 简单赋值 a = 5 a = 5
+= 加法赋值 a += 3 a = a + 3
-= 减法赋值 a -= 2 a = a - 2
*= 乘法赋值 a *= 4 a = a * 4
/= 除法赋值 a /= 2 a = a / 2
//= 整除赋值 a //= 3 a = a // 3
%= 取余赋值 a %= 5 a = a % 5
**= 幂赋值 a **= 2 a = a ** 2

六、成员运算符

运算符 描述 示例 结果
in 是否存在 'a' in 'abc' True
not in 是否不存在 'd' not in 'abc' True

📌 适用场景:

  • 判断某个元素是否存在于字符串、列表、元组、字典等中。

七、身份运算符

运算符 描述 示例 结果
is 是否同一对象 a = [1, 2]; b = a; a is b True
is not 是否非同一对象 a = [1, 2]; b = [1, 2]; a is not b True

📌 区别 == 与 is:

  • == 判断值是否相等;
  • is 判断是否是同一个对象(内存地址相同)。

八、位运算符

运算符 描述 示例 说明
& 按位与 5 & 3 → 1 二进制:0101 & 0011 = 0001
` ` 按位或 `5
^ 异或 5 ^ 3 → 6 二进制:0101 ^ 0011 = 0110
~ 取反 ~5 → -6 补码表示
<< 左移 5 << 1 → 10 二进制左移一位
>> 右移 5 >> 1 → 2 二进制右移一位

📌 应用:

  • 底层系统编程、网络协议解析、权限位掩码等。

九、运算符优先级与结合性

运算符优先级(从高到低)
()(括号)
**(幂)
~, +, -(一元)
*, /, //, %
+, -(二元)
<<, >>
&
^
`
==, !=, >, <等
is, is not
in, not in
not
and
or

📌 建议:

  • 使用括号提高代码可读性,避免因优先级错误导致逻辑问题。

⚠️ 注意事项

  • 不要混淆 == 和 is:前者比较值,后者比较对象身份。
  • 避免多重复杂运算在同一行:影响可读性。
  • 合理使用括号提升优先级可读性:即使不改变结果,也应增强可读性。
  • 注意布尔值的隐式转换:如 0, None, [] 等在 if 中视为 False。
  • 位运算符通常用于底层开发:普通业务逻辑中较少使用。

🧪 实际案例分析

📌 场景:判断用户输入是否为合法年份

year = input("请输入年份:")

if year.isdigit():
    year = int(year)
    if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
        print(f"{year} 是闰年")
    else:
        print(f"{year} 不是闰年")
else:
    print("请输入有效的数字年份!")

📌 分析:

  • 使用了 ==, !=, or, and 等运算符判断条件。
  • 使用 isdigit() 成员运算符判断输入是否为数字字符串。
  • 使用 int() 类型转换确保后续运算正确。
posted @ 2025-05-28 00:00  红尘过客2022  阅读(113)  评论(0)    收藏  举报