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 学习资料都在这里,后续复习和拓展会更省时间。

相关推荐
小肝一下2 小时前
每日两道力扣,day4
c++·算法·leetcode·职场和发展
柏林以东_2 小时前
java遍历的所有方法及优缺点
java·开发语言·数据结构
菜鸟‍2 小时前
【论文学习】Disco:基于邻接感知协同着色的密集重叠细胞实例分割方法
人工智能·学习·算法
牧天白衣.2 小时前
力扣215.数组中的第K个最大元素
算法·leetcode
cxr8282 小时前
控制理论基础
人工智能·算法
平平淡淡才是true2 小时前
偏序关系、哈斯图、最长链长度、最长链条数
算法
小钊(求职中)3 小时前
算法知识、常用方法总结
java·算法·排序算法·力扣
paeamecium3 小时前
【PAT甲级真题】- Talent and Virtue (25)
数据结构·c++·算法·pat
Mr_Xuhhh3 小时前
蓝桥杯复习清单真题(C++版本)
c++·算法·蓝桥杯