03 - 运算符

想系统提升编程能力、查看更完整的学习路线,欢迎访问 AI Compass:https://github.com/tingaicompass/AI-Compass

仓库持续更新刷题题解、Python 基础和 AI 实战内容,适合想高效进阶的你。

03 - 运算符

学习目标: 掌握算术、比较、逻辑和位运算符


💻 代码示例

1. 算术运算符

python 复制代码
a, b = 10, 3

print(a + b)   # 13 加法
print(a - b)   # 7  减法
print(a * b)   # 30 乘法
print(a / b)   # 3.333... 除法(结果是浮点数)
print(a // b)  # 3  整除(向下取整)
print(a % b)   # 1  取余(模运算)
print(a ** b)  # 1000 幂运算(10的3次方)

# 复合赋值
x = 5
x += 3   # x = x + 3 → 8
x -= 2   # x = x - 2 → 6
x *= 2   # x = x * 2 → 12
x //= 5  # x = x // 5 → 2

2. 比较运算符

python 复制代码
print(5 == 5)   # True  等于
print(5 != 3)   # True  不等于
print(5 > 3)    # True  大于
print(5 < 3)    # False 小于
print(5 >= 5)   # True  大于等于
print(5 <= 3)   # False 小于等于

# 链式比较(Python特有!)
x = 5
print(1 < x < 10)  # True (相当于 1 < x and x < 10)

3. 逻辑运算符

python 复制代码
print(True and True)   # True
print(True and False)  # False
print(True or False)   # True
print(not True)        # False

# 短路运算
x = 5
print(x > 0 and x < 10)  # True
print(x > 10 or x < 0)   # False

# 算法题中常用
if nums and nums[0] > 0:  # 先检查nums非空,再访问元素
    print("第一个元素是正数")

4. 位运算符(高级)

python 复制代码
a, b = 5, 3  # 二进制: 101, 011

print(a & b)   # 1  按位与(AND)
print(a | b)   # 7  按位或(OR)
print(a ^ b)   # 6  按位异或(XOR) ⭐
print(~a)      # -6 按位取反
print(a << 1)  # 10 左移(相当于乘以2)
print(a >> 1)  # 2  右移(相当于除以2)

# 异或的神奇性质(算法题常用)
print(5 ^ 5)  # 0  (任何数和自己异或等于0)
print(5 ^ 0)  # 5  (任何数和0异或等于自己)

# 应用:找出数组中唯一出现一次的数(第104课)
nums = [2, 2, 1, 3, 3]
result = 0
for num in nums:
    result ^= num  # 2^2=0, 3^3=0, 1^0=1
print(result)  # 1

5. 成员运算符

python 复制代码
# in / not in
nums = [1, 2, 3, 4, 5]
print(3 in nums)      # True
print(10 not in nums) # True

s = "hello"
print('h' in s)   # True
print('x' in s)   # False

# 字典中检查键
d = {"name": "Alice", "age": 20}
print("name" in d)  # True

6. 身份运算符

python 复制代码
# is / is not (判断是否是同一个对象)
a = [1, 2, 3]
b = a        # b和a指向同一个列表
c = [1, 2, 3]  # c是新列表

print(a is b)  # True (同一个对象)
print(a is c)  # False (不同对象)
print(a == c)  # True (值相等)

# 检查None
x = None
if x is None:  # ✅ 推荐
    print("x是None")
# if x == None:  # ⚠️ 不推荐

🎯 在算法题中的应用

python 复制代码
# 取余:判断奇偶
if num % 2 == 0:
    print("偶数")

# 整除:二分查找
mid = (left + right) // 2

# 异或:只出现一次的数字(第104课)
def singleNumber(nums):
    result = 0
    for num in nums:
        result ^= num
    return result

# 逻辑运算:边界检查
if 0 <= i < len(nums) and nums[i] > 0:
    # 访问nums[i]
    pass

# 位运算:判断奇偶(比%更快)
if n & 1:  # 等价于 n % 2 == 1
    print("奇数")

🎓 小结

✅ 算术:+, -, *, /, //, %, **

✅ 比较:==, !=, >, <, >=, <=

✅ 逻辑:and, or, not

✅ 位运算:&, |, ^, ~, <<, >>

✅ 成员:in, not in

✅ 身份:is, is not

必须记住:

  • // 整除
  • % 取余
  • ^ 异或(算法题常用)
  • in 成员检查

下一步 : 04-控制流.md


如果这篇内容对你有帮助,推荐收藏 AI Compass:https://github.com/tingaicompass/AI-Compass

更多系统化题解、编程基础和 AI 学习资料都在这里,后续复习和拓展会更省时间。

相关推荐
CappuccinoRose5 分钟前
回溯法 - 软考备战(四十三)
算法·排列组合·路径·n皇后·子集·解数独·岛屿
AC赳赳老秦8 分钟前
OpenClaw进阶技巧:批量修改文件内容、替换关键词,解放双手
java·linux·人工智能·python·算法·测试用例·openclaw
Robot_Nav43 分钟前
Shape-Aware MPPI(SA MPPI)算法:基于RC-ESDF的任意形状机器人实时轨迹优化
算法·机器人·sa-mppi
gumichef1 小时前
算法的时间复杂度和空间复杂度
数据结构
小O的算法实验室2 小时前
2026年ESWA,自适应基于排序的协同进化学习粒子群算法+边缘计算服务器部署,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
cpp_25012 小时前
P1832 A+B Problem(再升级)
数据结构·c++·算法·动态规划·题解·洛谷·背包dp
꧁细听勿语情꧂2 小时前
合并两个有序表、判断链表的回文结构、相交链表、环的链表一和二
c语言·开发语言·数据结构·算法
木井巳2 小时前
【递归算法】解数独
java·算法·leetcode·决策树·深度优先·剪枝
大肥羊学校懒羊羊3 小时前
完数与盈数的计算题解
数据结构·c++·算法
阿Y加油吧3 小时前
算法实战笔记:LeetCode 31 下一个排列 & 287 寻找重复数
笔记·算法·leetcode