侧边栏壁纸
博主头像
phphi

phphi's blog

  • 累计撰写 51 篇文章
  • 累计收到 0 条评论

Day04 - Python语言中的运算符

2026-4-24 / 0 评论 / 2 阅读

Python 语言中的运算符

运算符优先级

运算符优先级决定了表达式中多个运算符的执行顺序。优先级高的先执行,优先级低的后执行。不确定时,用圆括号 () 明确指定顺序。

优先级 运算符 说明
[][:] 索引、切片
** 幂运算
~+- 按位取反、正号、负号
*/%// 乘、除、模、整除
+- 加、减
>><< 右移、左移
& 按位与
^\| 按位异或、按位或
<=<>>= 比较运算
==!= 等于、不等于
isis not 身份运算符
innot in 成员运算符
notorand 逻辑运算符
=+=-= 赋值运算符

算术运算符

print(321 + 12)    # 加法: 333
print(321 - 12)    # 减法: 309
print(321 * 12)    # 乘法: 3852
print(321 / 12)    # 除法: 26.75
print(321 // 12)   # 整除: 26(取整数部分)
print(321 % 12)    # 取模: 9(余数)
print(321 ** 12)   # 幂运算: 1196906950228928915420617322241

优先级:幂运算 > 乘除 > 加减,用 () 可改变执行顺序:

print(2 + 3 * 5)           # 17(先乘后加)
print((2 + 3) * 5)         # 25
print(((2 + 3) * 5) ** 2)  # 625

赋值运算符

基本赋值:

a = 10
b = 3
a += b      # 等价于 a = a + b,结果 a = 13
a *= a + 2 # 等价于 a = a * (a + 2)

海象运算符(Python 3.8+): 赋值并同时返回值的运算符:

# 普通赋值不能放在 print 中,会报错
# print(a = 10)  # SyntaxError

# 海象运算符可以
print(a := 10)   # 输出: 10
print(a)          # a 已被赋值为 10

比较运算符

比较运算符返回布尔值 TrueFalse

print(3 > 2)    # True
print(1 == 1)   # True(注意是两个等号)
print(1 != 2)   # True

易错点== 是比较是否相等,= 是赋值,两者不要混淆。

逻辑运算符

运算符 说明 规则
and 逻辑与 两边都为 True 结果才为 True
or 逻辑或 任意一边为 True 结果就为 True
not 逻辑非 取反
flag1 = 3 > 2   # True
flag2 = 2 < 1   # False

print(flag1 and flag2)   # False
print(flag1 or flag2)   # True
print(not flag1)         # False

# 短路特性
print(True and print('被执行了'))  # 左边为 True,右边也会执行
print(False and print('被执行了'))  # 左边为 False,右边被跳过

注意and 左边为 False 时,右边不执行(短路);or 左边为 True 时,右边不执行。

应用实例

实例1:华氏温度转摄氏温度

公式:C = (F - 32) / 1.8

f = float(input('请输入华氏温度: '))
c = (f - 32) / 1.8
print(f'{f:.1f}华氏度 = {c:.1f}摄氏度')

实例2:计算圆的周长和面积

import math

radius = float(input('请输入圆的半径: '))
perimeter = 2 * math.pi * radius
area = math.pi * radius ** 2

# 方式1:f-string 格式化
print(f'周长: {perimeter:.2f}')
print(f'面积: {area:.2f}')

# 方式2:Python 3.8+ 变量名输出
print(f'{perimeter = :.2f}')  # perimeter = 34.56
print(f'{area = :.2f}')       # area = 95.03

实例3:判断闰年

闰年判断规则(格里历):

  • 能被 4 整除 不能被 100 整除 → 闰年
  • 能被 400 整除 → 闰年
year = int(input('请输入年份(1582年以后): '))
is_leap = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
print(f'{is_leap = }')

总结

  • 运算符优先级决定表达式求值顺序,不确定时用 () 显式指定
  • 赋值运算符将右值赋给左变量,海象运算符 := 可同时赋值和返回
  • 比较运算符返回布尔值,== 不要误写成 =
  • 逻辑运算符 and/or/not 遵循短路规则
  • 字符串格式化推荐使用 f-string: f'{变量:.2f}'