第4课:计算机的数学课——基本运算
🎯 本课目标
- 掌握Python中的基本数学运算
- 理解运算优先级
- 学会用Python解决实际问题
- 制作科学计算器程序
- 理解不同运算的应用场景
🧮 趣味引入:计算机的数学大脑
你知道吗? 计算机最初被发明出来,就是为了做数学计算!第一台电子计算机ENIAC就是用来计算导弹弹道轨迹的。
今天,让我们激活计算机的"数学大脑",看看它有多厉害!
小实验:用计算器计算:
- 3 + 4 × 5 = ?
- (3 + 4) × 5 = ?
如果你用普通计算器,可能得到错误结果。但Python的数学大脑很聪明,知道要先算乘除后算加减!
➕ 基本运算符
Python有7种基本数学运算符,就像7个数学工具:
| 运算符 | 名称 | 示例 | 结果 | 用途 |
|--------|------|------|------|------|
| + | 加 | 5 + 3 | 8 | 求和 |
| - | 减 | 10 - 4 | 6 | 求差 |
| | 乘 | 6 7 | 42 | 求积 |
| / | 除 | 20 / 4 | 5.0 | 求商 |
| | 幂 | 2 3 | 8 | 求幂 |
| % | 取余 | 10 % 3 | 1 | 求余数 |
| // | 整除 | 10 // 3 | 3 | 求整数商 |
🔢 运算符详细讲解
1. 加法:+
# 数字加法
print(5 + 3) # 8
print(2.5 + 1.5) # 4.0
# 字符串也能"加"(连接)
name = "小" + "明"
print(name) # 小明
# 变量相加
apples = 3
oranges = 5
total_fruits = apples + oranges
print(f"水果总数:{total_fruits}") # 水果总数:8

2. 减法:-
# 数字减法
print(10 - 4) # 6
print(7.5 - 2.3) # 5.2
# 负数
print(5 - 8) # -3
# 实际应用:找零计算
price = 25
money = 50
change = money - price
print(f"商品价格:{price}元")
print(f"支付:{money}元")
print(f"找零:{change}元")

3. 乘法:*
# 数字乘法
print(6 * 7) # 42
print(2.5 * 4) # 10.0
# 字符串重复
print("哈" * 3) # 哈哈哈
print("❤️" * 5) # ❤️❤️❤️❤️❤️
# 计算长方形的面积
length = 8.5
width = 4.2
area = length * width
print(f"长方形面积:{area} 平方厘米")

4. 除法:/
# 普通除法
print(20 / 4) # 5.0
print(10 / 3) # 3.3333333333333335
# 注意:除法结果总是浮点数
print(8 / 2) # 4.0 不是4
# 计算平均数
chinese = 92
math = 88
english = 95
average = (chinese + math + english) / 3
print(f"平均分:{average:.2f}") # 保留两位小数

为什么会多出来一个 5?
- 10 / 3在数学上是无限循环小数:3.3333...
- 但计算机使用 二进制浮点数(IEEE 754) 存储小数
- 很多十进制小数 无法被精确表示,只能近似存储
- 在转换为字符串输出时,Python 会显示最接近的可表示值,于是出现了 ...335
- 这是一个正常现象,不是 Python 的 bug。
5. 幂运算:**
# 平方
print(5 ** 2) # 25 (5×5)
print(3 ** 2) # 9 (3×3)
# 立方
print(2 ** 3) # 8 (2×2×2)
print(4 ** 3) # 64 (4×4×4)
# 10的幂
print(10 ** 2) # 100
print(10 ** 3) # 1000
# 计算圆的面积
pi = 3.14159
radius = 5
area = pi * (radius ** 2)
print(f"半径为{radius}的圆面积:{area:.2f}")

6. 取余运算:%
# 基本取余
print(10 % 3) # 1 (10÷3=3余1)
print(15 % 4) # 3 (15÷4=3余3)
print(20 % 6) # 2 (20÷6=3余2)
# 判断奇偶数
number = 7
if number % 2 == 0:
print(f"{number}是偶数")
else:
print(f"{number}是奇数")
# 时间转换
total_seconds = 125
minutes = total_seconds // 60
seconds = total_seconds % 60
print(f"{total_seconds}秒 = {minutes}分{seconds}秒")

7. 整除运算://
# 整除
print(10 // 3) # 3 (10÷3=3余1,只要整数部分)
print(15 // 4) # 3 (15÷4=3余3)
print(20 // 6) # 3 (20÷6=3余2)
# 分组计算
students = 45
group_size = 6
full_groups = students // group_size
remaining = students % group_size
print(f"{students}个学生,每组{group_size}人")
print(f"可以分成{full_groups}个完整小组")
print(f"还剩下{remaining}个学生")

🎪 运算优先级
重要规则:先乘除,后加减,有括号先算括号
优先级顺序(从高到低):
()括号**幂运算*///%乘、除、整除、取余+-加、减
练习:看看计算机怎么算
# 没有括号的情况
print(3 + 4 * 5) # 23 不是35!
# 先算4×5=20,再算3+20=23
# 有括号的情况
print((3 + 4) * 5) # 35
# 先算括号3+4=7,再算7×5=35
# 更复杂的例子
print(2 + 3 * 4 ** 2) # 50
# 1. 先算4**2=16
# 2. 再算3*16=48
# 3. 最后算2+48=50
# 加上括号
print((2 + 3) * 4 ** 2) # 80
# 1. 先算括号2+3=5
# 2. 再算4**2=16
# 3. 最后算5*16=80

优先级口诀:
先括号,后幂方
乘除取余整除忙
最后再把加减算
从左到右别慌张
🧪 实际应用练习
应用1:购物车计算器
print("🛒 购物车计算器")
print("=" * 30)
# 商品价格
pencil_price = 2.5
notebook_price = 6.0
pen_price = 3.5
# 购买数量
pencil_count = 3
notebook_count = 2
pen_count = 4
# 计算
total = (pencil_price * pencil_count +
notebook_price * notebook_count +
pen_price * pen_count)
# 计算折扣(打9折)
discount = 0.9
final_price = total * discount
# 输出
print(f"铅笔:{pencil_count}支 × ¥{pencil_price} = ¥{pencil_price * pencil_count}")
print(f"笔记本:{notebook_count}本 × ¥{notebook_price} = ¥{notebook_price * notebook_count}")
print(f"钢笔:{pen_count}支 × ¥{pen_price} = ¥{pen_price * pen_count}")
print("-" * 30)
print(f"原价:¥{total}")
print(f"折扣:9折")
print(f"实付:¥{final_price:.2f}") # 保留两位小数

应用2:几何图形计算
print("📐 几何计算器")
print("=" * 30)
# 长方形
length = 8.5
width = 4.2
rectangle_area = length * width
rectangle_perimeter = 2 * (length + width)
# 正方形
side = 6
square_area = side ** 2
square_perimeter = 4 * side
# 三角形
base = 10
height = 6
triangle_area = 0.5 * base * height
# 圆
radius = 5
pi = 3.14159
circle_area = pi * (radius ** 2)
circle_circumference = 2 * pi * radius
# 输出结果
print("长方形:")
print(f" 长={length}, 宽={width}")
print(f" 面积={rectangle_area:.2f}, 周长={rectangle_perimeter:.2f}")
print("\n正方形:")
print(f" 边长={side}")
print(f" 面积={square_area}, 周长={square_perimeter}")
print("\n三角形:")
print(f" 底={base}, 高={height}")
print(f" 面积={triangle_area}")
print("\n圆形:")
print(f" 半径={radius}")
print(f" 面积={circle_area:.2f}, 周长={circle_circumference:.2f}")
应用3:时间转换器
print("⏰ 时间转换器")
print("=" * 30)
# 输入总秒数
total_seconds = int(input("请输入总秒数:"))
# 计算
days = total_seconds // (24 * 60 * 60)
remaining = total_seconds % (24 * 60 * 60)
hours = remaining // (60 * 60)
remaining = remaining % (60 * 60)
minutes = remaining // 60
seconds = remaining % 60
# 输出
print(f"\n{total_seconds}秒等于:")
if days > 0:
print(f" {days}天")
if hours > 0:
print(f" {hours}小时")
if minutes > 0:
print(f" {minutes}分钟")
if seconds > 0:
print(f" {seconds}秒")
# 验证
total_check = (days * 24 * 60 * 60 +
hours * 60 * 60 +
minutes * 60 +
seconds)
print(f"\n验证:{total_check}秒(与输入一致)")
🎮 数学游戏
游戏1:猜数字计算
print("🔢 猜数字计算游戏")
print("=" * 30)
# 第一步:想一个数字
print("第一步:想一个1-10之间的数字")
input("想好了按回车继续...")
# 第二步:进行计算
print("\n第二步:进行以下计算")
print("1. 把你的数字乘以2")
print("2. 加上8")
print("3. 除以2")
print("4. 减去你原来的数字")
input("计算完成按回车查看结果...")
# 第三步:揭秘
result = 4 # 数学魔术的结果
print(f"\n我猜结果一定是...{result}!")
print("(无论你原来想的数字是多少,结果都是4!)")
数学原理:(n×2+8)/2-n = 4,n会相互抵消
游戏2:24点游戏简化版
print("🎲 24点游戏(简化版)")
print("=" * 30)
# 随机数字(暂时用固定数字)
num1, num2, num3, num4 = 3, 4, 5, 2
print(f"四个数字是:{num1}, {num2}, {num3}, {num4}")
print("用加减乘除和括号,让结果等于24")
# 一个可能的解法
solution = f"({num1} + {num2}) * ({num3} - {num4})"
result = (num1 + num2) * (num3 - num4)
print(f"\n一个解法:{solution}")
print(f"计算结果:{result}")
if result == 24:
print("✓ 正确!结果等于24")
else:
print("✗ 错误!结果不等于24")
🔧 常见问题与调试
问题1:类型错误
# ❌ 错误示例
age = "10"
next_year_age = age + 1 # TypeError
# ✅ 正确做法
age = "10"
next_year_age = int(age) + 1
# 或者
age = 10
next_year_age = age + 1

问题2:除零错误
# ❌ 错误示例
result = 10 / 0 # ZeroDivisionError
# ✅ 预防方法
divisor = 0
if divisor != 0:
result = 10 / divisor
else:
print("错误:除数不能为零!")
问题3:浮点数精度
# 浮点数计算可能有微小误差
print(0.1 + 0.2) # 0.30000000000000004
print(0.3) # 0.3
# ✅ 解决方法:四舍五入
result = 0.1 + 0.2
print(round(result, 2)) # 0.3
问题4:大数计算
# Python可以计算非常大的数
big_number = 10 ** 100 # 1后面100个0
print(f"10的100次方有{len(str(big_number))}位数字")
# 但要注意浮点数溢出
big_float = 1e308 # 10的308次方
print(f"非常大的浮点数:{big_float}")
🧩 综合练习
练习1:温度转换器
编写程序,在摄氏度和华氏度之间转换:
公式:华氏度 = 摄氏度 × 9/5 + 32
摄氏度 = (华氏度 - 32) × 5/9
练习2:BMI计算器
编写程序计算身体质量指数(BMI):
公式:BMI = 体重(kg) / 身高(m)²
标准:BMI < 18.5 偏轻
18.5 ≤ BMI < 24 正常
BMI ≥ 24 偏重
练习3:贷款计算器
编写程序计算每月还款额:
公式:每月还款 = 贷款总额 × 月利率 × (1+月利率)^期数 ÷ ((1+月利率)^期数 - 1)
假设:贷款10万元,年利率5%,分3年还清
📈 数学函数进阶
Python还有一些内置的数学函数:
# 绝对值
print(abs(-5)) # 5
print(abs(3.5)) # 3.5
# 四舍五入
print(round(3.14159, 2)) # 3.14
print(round(2.5)) # 2 (注意:银行家舍入法)
# 最大最小值
print(max(3, 5, 1, 9, 2)) # 9
print(min(3, 5, 1, 9, 2)) # 1
# 幂运算的另一种写法
print(pow(2, 3)) # 8 (2**3)
print(pow(2, 3, 3)) # 2 (2**3 % 3)
🎯 运算优先级练习
计算以下表达式,先自己想结果,再运行验证:
# 练习1
print(2 + 3 * 4)
# 练习2
print((2 + 3) * 4)
# 练习3
print(2 ** 3 * 4)
# 练习4
print(2 + 3 * 4 ** 2)
# 练习5
print((2 + 3) * (4 ** 2))
# 练习6
print(10 + 6 // 4 - 3)
# 练习7
print(10 + 6 // (4 - 3))
# 练习8
print(15 % 4 + 7 // 2)
答案:
- 14
- 20
- 32
- 50
- 80
- 8
- 16
- 7
📱 项目:科学计算器
print("🧮 科学计算器 v1.0")
print("=" * 40)
while True:
print("\n请选择功能:")
print("1. 基本计算")
print("2. 几何计算")
print("3. 单位转换")
print("4. 退出")
choice = input("\n请输入选择(1-4):")
if choice == "1":
# 基本计算
print("\n基本计算器")
print("-" * 20)
try:
num1 = float(input("请输入第一个数字:"))
operator = input("请输入运算符(+ - * / ** % //):")
num2 = float(input("请输入第二个数字:"))
if operator == "+":
result = num1 + num2
elif operator == "-":
result = num1 - num2
elif operator == "*":
result = num1 * num2
elif operator == "/":
if num2 == 0:
print("错误:除数不能为零!")
continue
result = num1 / num2
elif operator == "**":
result = num1 ** num2
elif operator == "%":
result = num1 % num2
elif operator == "//":
result = num1 // num2
else:
print("错误:不支持的运算符!")
continue
print(f"\n{num1} {operator} {num2} = {result}")
except ValueError:
print("错误:请输入有效的数字!")
elif choice == "2":
# 几何计算
print("\n几何计算器")
print("-" * 20)
print("1. 长方形面积和周长")
print("2. 圆的面积和周长")
print("3. 三角形面积")
geo_choice = input("请选择(1-3):")
if geo_choice == "1":
length = float(input("请输入长:"))
width = float(input("请输入宽:"))
area = length * width
perimeter = 2 * (length + width)
print(f"面积:{area}")
print(f"周长:{perimeter}")
elif geo_choice == "2":
radius = float(input("请输入半径:"))
pi = 3.14159
area = pi * (radius ** 2)
circumference = 2 * pi * radius
print(f"面积:{area:.2f}")
print(f"周长:{circumference:.2f}")
elif geo_choice == "3":
base = float(input("请输入底:"))
height = float(input("请输入高:"))
area = 0.5 * base * height
print(f"面积:{area}")
else:
print("错误的选择!")
elif choice == "3":
# 单位转换
print("\n单位转换器")
print("-" * 20)
print("1. 摄氏度 ↔ 华氏度")
print("2. 厘米 ↔ 英寸")
print("3. 千克 ↔ 磅")
unit_choice = input("请选择(1-3):")
if unit_choice == "1":
temp = float(input("请输入温度:"))
direction = input("转换为(C→F 输入1,F→C 输入2):")
if direction == "1":
fahrenheit = temp * 9/5 + 32
print(f"{temp}°C = {fahrenheit:.1f}°F")
elif direction == "2":
celsius = (temp - 32) * 5/9
print(f"{temp}°F = {celsius:.1f}°C")
else:
print("错误选择!")
elif unit_choice == "2":
# 其他转换类似
print("功能开发中...")
elif choice == "4":
print("\n感谢使用科学计算器,再见!")
break
else:
print("错误:请输入1-4之间的数字!")
input("\n按回车键继续...")
📅 下节课预告
第5课:计算机的语文课——字符串处理
下节课你将学习:
- 字符串的基本操作
- 字符串切片和索引
- 字符串常用方法
- 制作文本处理工具
- 字符串格式化技巧
预习思考:
- 如何获取字符串的长度?
- 如何提取字符串的一部分?
- 如何判断一个字符串是否包含某个字?
🏆 本课成就墙
完成本课学习,你获得了:
🧮 【运算大师】:掌握7种基本运算符
🎯 【优先级专家】:理解运算顺序规则
🔢 【计算达人】:能用Python解决数学问题
🛠️ 【工具能手】:制作实用计算工具
🤔 【思维高手】:培养计算思维能力
学习路径:
- ✅ 第1课:环境搭建
- ✅ 第2课:print()函数
- ✅ 第3课:变量
- ✅ 第4课:基本运算
- ⏳ 第5课:字符串处理
知识掌握评估:
- 我能正确使用7种运算符:□ 完全掌握 □ 基本掌握 □ 还需练习
- 我理解运算优先级:□ 完全理解 □ 基本理解 □ 还需学习
- 我能用Python解决数学问题:□ 熟练应用 □ 基本应用 □ 初步尝试
- 我能调试运算错误:□ 熟练解决 □ 基本解决 □ 需要帮助
🌟 编程心法
数学是编程的基础
运算符是工具
优先级是规则
变量是记忆
代码是表达
实践是检验
从简单到复杂
从计算到创造
每一步都算数
记住:计算机是强大的数学工具,而你是这个工具的指挥家。用代码解决实际问题,让数学变得有趣和有用。
💬 给家长的话
亲爱的家长:
今天孩子学习了Python的数学运算,这是编程与实际应用结合的重要一步。
孩子的收获:
- ✅ 掌握7种基本数学运算符
- ✅ 理解运算优先级规则
- ✅ 学会用编程解决数学问题
- ✅ 培养逻辑思维和计算思维
- ✅ 制作实用工具程序
数学与编程的联系:
| 数学概念 | 编程应用 | 教育价值 |
|---------|---------|---------|
| 四则运算 | 计算器程序 | 实际问题解决 |
| 运算顺序 | 优先级控制 | 逻辑思维 |
| 几何公式 | 图形计算 | 空间思维 |
| 单位转换 | 实用工具 | 实际应用 |
您可以这样做:
生活应用:
- 购物计算:让孩子用Python算购物总价、折扣
- 家庭记账:记录家庭开支,计算结余
- 旅行计划:计算路程、时间、花费
- 作业助手:用Python验证数学作业答案
思维训练:
- 分解问题:如何将复杂计算分解为小步骤
- 验证结果:用不同方法验证计算正确性
- 优化方案:寻找更简便的计算方法
- 错误分析:从错误中学习优先级规则
温馨提示:
- 关注孩子是否理解优先级概念
- 鼓励用Python解决实际问题
- 允许犯错,错误是最好的老师
- 分享孩子的计算器给家人使用
第4课结束。你现在已经能用Python进行各种数学计算了!
实践任务:
1. 制作一个家庭计算器(买菜、水电费等)
2. 用Python验证你的数学作业
3. 计算你的BMI指数
4. 制作一个温度转换工具
下节课,让我们探索Python如何处理文字信息!
第5课见!🚀
课程内容为本人与AI共创,如有问题可留言交流。后续时间允许会考虑制作相关视频教学。