跳到主要内容

2.2 数字与运算符

算术运算符

Python 可以当计算器用:

print(10 + 3) # 13 加
print(10 - 3) # 7 减
print(10 * 3) # 30 乘(用星号,不是 ×)
print(10 / 3) # 3.3333333333333335 除(结果永远是浮点数)
print(10 // 3) # 3 整除(只要商的整数部分)
print(10 % 3) # 1 取余(求余数)
print(10 ** 3) # 1000 幂运算(10 的 3 次方)

几个新手需要注意的点:

  • 除法 / 的结果一定是浮点数,哪怕能整除:10 / 2 得到 5.0 而不是 5
  • 取余 % 非常有用:判断奇偶(x % 2 为 0 就是偶数)、判断能否整除等。
  • 运算优先级和数学一样,先乘除后加减,不确定就加括号:(1 + 2) * 3

复合赋值运算符

"在自己基础上修改"是编程中的高频操作,有简写:

score = 10
score = score + 5 # 完整写法:把 score+5 的结果重新赋给 score
print(score) # 15

score += 5 # 简写,等价于 score = score + 5
print(score) # 20

score -= 3 # 等价于 score = score - 3,结果 17
score *= 2 # 等价于 score = score * 2,结果 34

比较运算符

比较两个值,结果是布尔值 TrueFalse

print(3 > 2) # True 大于
print(3 < 2) # False 小于
print(3 >= 3) # True 大于等于
print(3 <= 2) # False 小于等于
print(3 == 3) # True 等于(两个等号!)
print(3 != 2) # True 不等于

⚠️ 最经典的坑= 是赋值,== 才是判断相等。写判断时少打一个等号是新手必犯错误。

逻辑运算符

把多个条件组合起来:

age = 20

print(age > 18 and age < 60) # True:and 要求两边都为真
print(age < 18 or age > 60) # False:or 只要一边为真即可
print(not age > 18) # False:not 取反
运算符含义记忆方法
and并且两个都真才真
or或者有一个真就真
not取反真变假,假变真

实用内置函数

print(abs(-5)) # 5 绝对值
print(round(3.567)) # 4 四舍五入
print(round(3.567, 2))# 3.57 保留 2 位小数
print(max(3, 7, 1)) # 7 最大值
print(min(3, 7, 1)) # 1 最小值

浮点数的小陷阱

print(0.1 + 0.2) # 0.30000000000000004 ??

这不是 Python 的 bug,而是所有编程语言都有的浮点数精度问题(计算机用二进制存小数,有些小数存不精确)。日常使用不用纠结,需要比较浮点数时用 round() 处理一下即可。

练习

  1. 一件衣服原价 299 元,打 7.5 折,用 Python 算出折后价并保留 2 位小数。
  2. % 判断 2024 是不是偶数(输出 True 或 False)。
  3. 小明有 17 颗糖,平均分给 5 个朋友,每人分几颗?还剩几颗?(用 //%
点击查看答案
# 1
price = 299 * 0.75
print(round(price, 2)) # 224.25

# 2
print(2024 % 2 == 0) # True

# 3
print(17 // 5) # 每人 3 颗
print(17 % 5) # 剩 2 颗

本章小结

  • 算术运算:+ - * / // % **,除法结果永远是浮点数
  • == 判断相等,= 是赋值,别搞混
  • and / or / not 组合条件
  • += 等复合赋值是常用简写

下一节:2.3 字符串