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
比较运算符
比较两个值,结果是布尔值 True 或 False:
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() 处理一下即可。
练习
- 一件衣服原价 299 元,打 7.5 折,用 Python 算出折后价并保留 2 位小数。
- 用
%判断 2024 是不是偶数(输出 True 或 False)。 - 小明有 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 字符串