在带娃用 Python 做小游戏或者刷数学题时,经常会遇到一些让人头疼的计算:计算圆的面积需要用 π,算出抛物线需要用三角函数,还有各种开平方根、阶乘、向上向下取整……
其实,Python 自带了一个超级强大的“数学计算学霸”——math 模块!
只要把 math 导入进来,各种复杂的计算一行代码就能搞定。今天咱们就用最通俗的大白话,带娃把 math 库的核心常数和常用函数一次性全搞懂!
💡 小提示:math 库主要用来处理实数(浮点数)运算。如果以后孩子学到了高中或大学的“复数”计算,Python 里有专门的 cmath 库来应对哦!
📌 一、math 库里的 4 大“镇库常数”
写代码时不用自己手输 3.1415926……,math 已经帮我们把这些数学常数存好了:
math.pi:圆周率 π(约等于 3.14159......),算圆周长和面积直接用它。
math.e:自然常数 e(约等于 2.71828)。
math.inf:正无穷大(负无穷大写做 -math.inf)。在游戏开发里,给角色设置“无限血量”或“无敌状态”时非常实用!
math.nan:代表“不是一个数字”(Not a Number),当计算出错或者没有意义时会显示这个。
📌 二、计算“开方与乘方”的 4 大神器
1. math.pow(x, y) —— 算 x的 y 次方
算乘方,比如 10^3(10 的 3 次方)。
2. math.sqrt(x) —— 算平方根(开根号)
算某个非负数的算术平方根,比如 \sqrt{100} = 10。注意 x 必须大等于 0,否则会报错!
3. math.exp(x) —— 算e 的 x 次方
计算自然常数 e 的 x 次幂(即 e^x)。
import mathprint(math.exp(3)) # 等价于 math.e ** 3
4. math.log(x, base) —— 算对数
求 x 的对数。如果不写底数 base,默认以 e 为底(自然对数);如果想指定底数(比如以 10 为底),写上参数即可。
📌 三、取整、绝对值与阶乘
这组函数在平时做数学题、做分数结算、搞概率统计时使用频率极高!
1. math.ceil(x) —— 天花板取整(向上取整)
不管小数部分多小,只要有小数就往大里进位!比如 99.1 变成 100。
2. math.floor(x) —— 地板取整(向下取整)
直接扔掉小数部分,往小里取整!比如 99.9 变成 99。
3. math.fabs(x) —— 算绝对值
用来计算一个数的绝对值(无论正负,出来都是正数)。
❓ 进阶疑问:Python 自带的 abs() 和 math.fabs() 有啥区别?
| 对比项 | Python 内置函数 abs() | math 模块函数 fabs() |
| 调用方式 | 直接写 abs(x) | 需要先导入,写 math.fabs(x) |
| 支持类型 | 支持整数、浮点数,还支持复数 | 只支持整数和浮点数 |
| 返回结果 | 输入整数返回整数,输入浮点返回浮点 | 无论输入啥,一律返回浮点数(小数) |
4. math.factorial(x) —— 算阶乘
计算一个非负整数的阶乘(比如 5! = 5 \times 4 \times 3 \times 2 \times 1 = 120)。
import mathprint(math.factorial(5)) # 输出: 120
📌 四、做小游戏必会:三角函数 (sin / cos / tan)
如果孩子想用 Python 制作“发射炮弹”、“愤怒的小鸟”、“飞机大战”或者做物体的旋转动画,就一定会用到三角函数!
math.sin(x):求正弦值
math.cos(x):求余弦值
math.tan(x):求正切值
⚠️ 超级坑点提示:这里的 x不是角度(度数),而是弧度!
比如想算 45^\circ 的正弦值,不能写 math.sin(45),而是要把 45^\circ 转换成弧度 \pi / 4,写成 math.sin(math.pi / 4)。
📝 知识点通俗总结卡片
四大常数:pi(圆周率)、e(自然常数)、inf(无穷大)、nan(非数字)。
乘方与开方:pow() 算次方,sqrt() 开根号,log() 算对数。
取整与绝对值:ceil() 向上顶,floor() 向下落,fabs() 求绝对值(强制变小数),factorial() 算阶乘。
三角函数:sin()、cos()、tan(),记得参数填弧度,不要直接填角度!