第13课:运算符大集合——让计算机帮你算
🎯 本课目标
- 掌握Python中的各种运算符
- 理解算术运算符的计算方法
- 学会使用比较运算符进行判断
- 了解赋值运算符的快捷用法
- 在实际项目中综合运用运算符
🧮 趣味引入:计算机的"算盘"
想象一下:计算机就像有一个超级算盘,能进行各种计算:
- ➕ 加法:计算总分、总价
- ➖ 减法:计算余额、差值
- ✖️ 乘法:计算倍数、面积
- ➗ 除法:计算平均数、单价
- ⚖️ 比较:判断大小、高低
- 📊 赋值:存储计算结果
今天,我们要学习的就是计算机的"算盘"——运算符!
🔢 第一部分:算术运算符
1.1 基本算术运算
# 算术运算符
print("🧮 算术运算符")
print("=" * 30)
# 定义两个数字
a = 10
b = 3
print(f"a = {a}, b = {b}")
print()
# 1. 加法
add_result = a + b
print(f"1. 加法:{a} + {b} = {add_result}")
# 2. 减法
sub_result = a - b
print(f"2. 减法:{a} - {b} = {sub_result}")
# 3. 乘法
mul_result = a * b
print(f"3. 乘法:{a} × {b} = {mul_result}")
# 4. 除法
div_result = a / b
print(f"4. 除法:{a} ÷ {b} = {div_result:.2f}")
# 5. 整除
floor_div = a // b
print(f"5. 整除:{a} // {b} = {floor_div}")
# 6. 取余
mod_result = a % b
print(f"6. 取余:{a} % {b} = {mod_result}")
# 7. 幂运算
pow_result = a ** 2
print(f"7. 幂运算:{a}² = {pow_result}")
1.2 实际应用:学生成绩计算
# 学生成绩计算
print("\n📊 学生成绩计算")
print("=" * 30)
# 各科成绩
chinese = 85
math = 92
english = 88
science = 90
pe = 95
# 计算总分
total = chinese + math + english + science + pe
print(f"语文:{chinese}分")
print(f"数学:{math}分")
print(f"英语:{english}分")
print(f"科学:{science}分")
print(f"体育:{pe}分")
print(f"总分:{total}分")
# 计算平均分
average = total / 5
print(f"平均分:{average:.1f}分")
# 计算与满分的差距
full_score = 100
gap_chinese = full_score - chinese
gap_math = full_score - math
print(f"\n与满分的差距:")
print(f"语文还差:{gap_chinese}分")
print(f"数学还差:{gap_math}分")
# 计算进步空间
improvement_rate = (total / (full_score * 5)) * 100
print(f"进步空间:{100 - improvement_rate:.1f}%")
⚖️ 第二部分:比较运算符
2.1 基本比较运算
# 比较运算符
print("⚖️ 比较运算符")
print("=" * 30)
x = 10
y = 5
z = 10
print(f"x = {x}, y = {y}, z = {z}")
print()
# 1. 等于
equal = x == z
print(f"1. 等于:{x} == {z} 是 {equal}")
# 2. 不等于
not_equal = x != y
print(f"2. 不等于:{x} != {y} 是 {not_equal}")
# 3. 大于
greater = x > y
print(f"3. 大于:{x} > {y} 是 {greater}")
# 4. 小于
less = x < y
print(f"4. 小于:{x} < {y} 是 {less}")
# 5. 大于等于
greater_equal = x >= z
print(f"5. 大于等于:{x} >= {z} 是 {greater_equal}")
# 6. 小于等于
less_equal = y <= x
print(f"6. 小于等于:{y} <= {x} 是 {less_equal}")
2.2 实际应用:成绩等级判断
# 成绩等级判断
print("\n📈 成绩等级判断")
print("=" * 30)
# 输入成绩
score = float(input("请输入你的成绩:"))
# 使用比较运算符判断等级
if score >= 90:
grade = "优秀"
elif score >= 80:
grade = "良好"
elif score >= 70:
grade = "中等"
elif score >= 60:
grade = "及格"
else:
grade = "不及格"
print(f"\n成绩:{score}分")
print(f"等级:{grade}")
# 比较与平均分
class_average = 85.5
if score > class_average:
print(f"✅ 高于班级平均分{class_average}分")
elif score < class_average:
difference = class_average - score
print(f"❌ 低于班级平均分{difference:.1f}分")
else:
print(f"📊 等于班级平均分")
# 判断是否进步
last_score = 78.5
if score > last_score:
improvement = score - last_score
print(f"📈 比上次进步了{improvement:.1f}分")
elif score < last_score:
decline = last_score - score
print(f"📉 比上次退步了{decline:.1f}分")
else:
print(f"📊 和上次成绩相同")
📝 第三部分:赋值运算符
3.1 基本赋值运算
# 赋值运算符
print("📝 赋值运算符")
print("=" * 30)
# 基本赋值
a = 10
print(f"初始值:a = {a}")
# 1. 加法赋值
a += 5 # 等价于 a = a + 5
print(f"1. a += 5 → a = {a}")
# 2. 减法赋值
a -= 3 # 等价于 a = a - 3
print(f"2. a -= 3 → a = {a}")
# 3. 乘法赋值
a *= 2 # 等价于 a = a * 2
print(f"3. a *= 2 → a = {a}")
# 4. 除法赋值
a /= 4 # 等价于 a = a / 4
print(f"4. a /= 4 → a = {a:.1f}")
# 5. 取余赋值
a = 10
a %= 3 # 等价于 a = a % 3
print(f"5. a %= 3 → a = {a}")
# 6. 幂赋值
a = 2
a **= 3 # 等价于 a = a ** 3
print(f"6. a **= 3 → a = {a}")
3.2 实际应用:游戏积分系统
# 游戏积分系统
print("\n🎮 游戏积分系统")
print("=" * 30)
# 初始积分
points = 100
print(f"初始积分:{points}分")
# 游戏过程
print("\n🎯 游戏开始!")
# 完成任务
points += 50
print(f"完成任务 +50分,当前:{points}分")
# 购买道具
points -= 30
print(f"购买道具 -30分,当前:{points}分")
# 击败敌人
points += 80
print(f"击败敌人 +80分,当前:{points}分")
# 使用技能
points -= 20
print(f"使用技能 -20分,当前:{points}分")
# 获得奖励(翻倍)
points *= 2
print(f"获得奖励 ×2倍,当前:{points}分")
# 最终统计
print(f"\n🎉 游戏结束!最终积分:{points}分")
# 判断等级
if points >= 300:
rank = "黄金"
elif points >= 200:
rank = "白银"
elif points >= 100:
rank = "青铜"
else:
rank = "新手"
print(f"🏆 你的等级:{rank}")
🎯 第四部分:运算符优先级
4.1 优先级示例
# 运算符优先级
print("🎯 运算符优先级")
print("=" * 30)
# 不同的运算顺序
a = 10
b = 5
c = 2
print(f"a = {a}, b = {b}, c = {c}")
print()
# 示例1:先乘除后加减
result1 = a + b * c
result2 = (a + b) * c
print(f"1. a + b × c = {a} + {b} × {c} = {result1}")
print(f"2. (a + b) × c = ({a} + {b}) × {c} = {result2}")
print()
# 示例2:先括号再其他
result3 = (a + b) / c
result4 = a + b / c
print(f"3. (a + b) ÷ c = ({a} + {b}) ÷ {c} = {result3}")
print(f"4. a + b ÷ c = {a} + {b} ÷ {c} = {result4}")
print()
# 示例3:幂运算优先级
result5 = a ** 2 + b
result6 = a ** (2 + b)
print(f"5. a² + b = {a}² + {b} = {result5}")
print(f"6. a^(2+b) = {a}^({2}+{b}) = {result6}")
4.2 优先级练习
# 优先级练习
print("\n📝 运算符优先级练习")
print("=" * 30)
# 练习题目
exercises = [
("3 + 5 × 2", 3 + 5 * 2, 13),
("(3 + 5) × 2", (3 + 5) * 2, 16),
("10 ÷ 2 + 3", 10 / 2 + 3, 8.0),
("10 ÷ (2 + 3)", 10 / (2 + 3), 2.0),
("4² + 3 × 2", 4 ** 2 + 3 * 2, 22),
("(4 + 3)²", (4 + 3) ** 2, 49),
("20 - 6 ÷ 2", 20 - 6 / 2, 17.0),
("(20 - 6) ÷ 2", (20 - 6) / 2, 7.0)
]
print("计算结果:")
for expr, result, expected in exercises:
print(f"{expr:15} = {result:5} {'✅' if result == expected else '❌'}")
# 记忆口诀
print(f"\n💡 优先级口诀:")
print(" 括号 → 幂运算 → 乘除 → 加减")
print(" (先算括号,再算乘方,然后乘除,最后加减)")
🎮 第五部分:综合应用项目
项目1:智能购物计算器
# 智能购物计算器
print("🛒 智能购物计算器")
print("=" * 40)
# 商品列表
products = [
{"name": "笔记本", "price": 5.5, "quantity": 0},
{"name": "铅笔", "price": 1.0, "quantity": 0},
{"name": "橡皮", "price": 2.0, "quantity": 0},
{"name": "尺子", "price": 3.5, "quantity": 0},
{"name": "笔袋", "price": 15.0, "quantity": 0}
]
# 显示商品
print("🛍️ 商品列表:")
for i, product in enumerate(products, 1):
print(f"{i}. {product['name']:5} - ¥{product['price']:.1f}元")
# 购物
print("\n🛍️ 请选择商品(输入编号,0结束):")
while True:
try:
choice = int(input("选择商品编号:"))
if choice == 0:
break
elif 1 <= choice <= len(products):
product = products[choice-1]
quantity = int(input(f"购买数量({product['name']}):"))
product['quantity'] += quantity
cost = product['price'] * quantity
print(f"✅ 已添加:{product['name']} ×{quantity} = ¥{cost:.1f}元")
else:
print("❌ 编号无效!")
except:
print("❌ 输入错误!")
# 计算
print(f"\n📋 购物清单:")
print("-" * 40)
total = 0
for product in products:
if product['quantity'] > 0:
subtotal = product['price'] * product['quantity']
total += subtotal
print(f"{product['name']:5} ¥{product['price']:4.1f} ×{product['quantity']:2} = ¥{subtotal:6.1f}元")
print("-" * 40)
print(f"总计:¥{total:.1f}元")
# 折扣
if total >= 50:
discount = total * 0.1 # 9折
final_total = total - discount
print(f"折扣:-¥{discount:.1f}元(满50减10%)")
print(f"实付:¥{final_total:.1f}元")
else:
print(f"实付:¥{total:.1f}元")
# 支付
money = float(input("\n💵 支付金额:¥"))
if money >= total:
change = money - (final_total if 'final_total' in locals() else total)
print(f"找零:¥{change:.1f}元")
print("✅ 交易完成!")
else:
needed = (final_total if 'final_total' in locals() else total) - money
print(f"❌ 金额不足,还需¥{needed:.1f}元")
项目2:运动能量计算器
# 运动能量计算器
print("⚽ 运动能量计算器")
print("=" * 40)
# 运动消耗(千卡/分钟)
sports = {
"跑步": 0.1, # 10千卡/分钟
"游泳": 0.12, # 12千卡/分钟
"篮球": 0.08, # 8千卡/分钟
"跳绳": 0.15, # 15千卡/分钟
"散步": 0.05 # 5千卡/分钟
}
print("🏃 选择运动项目:")
for i, (sport, cal_per_min) in enumerate(sports.items(), 1):
print(f"{i}. {sport:5} - {cal_per_min*100:.0f}千卡/10分钟")
# 记录运动
records = []
total_calories = 0
print("\n📝 记录运动(输入0结束):")
while True:
try:
sport_choice = int(input("\n选择运动编号:"))
if sport_choice == 0:
break
elif 1 <= sport_choice <= len(sports):
sport_name = list(sports.keys())[sport_choice-1]
minutes = int(input(f"运动时间({sport_name},分钟):"))
if minutes > 0:
calories = sports[sport_name] * minutes
total_calories += calories
records.append({
"sport": sport_name,
"minutes": minutes,
"calories": calories
})
print(f"✅ 已记录:{sport_name} {minutes}分钟,消耗{calories:.1f}千卡")
else:
print("❌ 时间必须大于0!")
else:
print("❌ 编号无效!")
except:
print("❌ 输入错误!")
# 显示记录
if records:
print(f"\n📊 今日运动报告:")
print("-" * 40)
for i, record in enumerate(records, 1):
print(f"{i}. {record['sport']:5} {record['minutes']:3}分钟 = {record['calories']:5.1f}千卡")
print("-" * 40)
print(f"总计消耗:{total_calories:.1f}千卡")
# 食物热量(千卡)
foods = {
"米饭": 116,
"苹果": 52,
"巧克力": 546,
"汉堡": 295,
"薯条": 312
}
print(f"\n🍎 相当于吃了:")
for food, calories in foods.items():
equivalent = total_calories / calories
if equivalent >= 0.1: # 只显示有意义的
print(f" {food}: {equivalent:.1f}份")
# 目标达成
daily_goal = 300
goal_percent = (total_calories / daily_goal) * 100
print(f"\n🎯 目标达成:{goal_percent:.0f}%")
if goal_percent >= 100:
print("✅ 恭喜!达成每日运动目标!")
else:
remaining = daily_goal - total_calories
print(f"💪 还需消耗{remaining:.0f}千卡")
else:
print("\n📭 今天没有运动记录")
项目3:几何图形计算器
# 几何图形计算器
import math
print("📐 几何图形计算器")
print("=" * 40)
print("请选择要计算的图形:")
print("1. 长方形")
print("2. 圆形")
print("3. 三角形")
print("4. 正方形")
choice = input("\n选择图形编号:")
if choice == "1":
# 长方形
print("\n📏 长方形计算")
length = float(input("长:"))
width = float(input("宽:"))
area = length * width
perimeter = 2 * (length + width)
print(f"\n📊 计算结果:")
print(f" 面积:{area:.2f}平方单位")
print(f" 周长:{perimeter:.2f}单位")
elif choice == "2":
# 圆形
print("\n⚪ 圆形计算")
radius = float(input("半径:"))
area = math.pi * radius ** 2
circumference = 2 * math.pi * radius
print(f"\n📊 计算结果:")
print(f" 面积:{area:.2f}平方单位")
print(f" 周长:{circumference:.2f}单位")
print(f" π取:{math.pi:.5f}")
elif choice == "3":
# 三角形
print("\n🔺 三角形计算")
base = float(input("底边:"))
height = float(input("高:"))
side1 = float(input("边1:"))
side2 = float(input("边2:"))
side3 = float(input("边3:"))
area = 0.5 * base * height
perimeter = side1 + side2 + side3
print(f"\n📊 计算结果:")
print(f" 面积:{area:.2f}平方单位")
print(f" 周长:{perimeter:.2f}单位")
# 判断三角形类型
sides = sorted([side1, side2, side3])
if sides[0] + sides[1] > sides[2]:
if side1 == side2 == side3:
triangle_type = "等边三角形"
elif side1 == side2 or side1 == side3 or side2 == side3:
triangle_type = "等腰三角形"
elif sides[0]**2 + sides[1]**2 == sides[2]**2:
triangle_type = "直角三角形"
else:
triangle_type = "一般三角形"
print(f" 类型:{triangle_type}")
else:
print("❌ 不是有效的三角形!")
elif choice == "4":
# 正方形
print("\n⬛ 正方形计算")
side = float(input("边长:"))
area = side ** 2
perimeter = 4 * side
print(f"\n📊 计算结果:")
print(f" 面积:{area:.2f}平方单位")
print(f" 周长:{perimeter:.2f}单位")
else:
print("❌ 无效的选择!")
# 附加功能:比较图形
if 'area' in locals():
print(f"\n🔍 面积相当于:")
print(f" {area:.0f}个1×1的正方形")
if area > 100:
print(f" 大约{math.sqrt(area):.1f}×{math.sqrt(area):.1f}的正方形")
🎲 第六部分:运算符游戏
游戏1:运算符猜猜猜
# 运算符猜猜猜
import random
print("🎯 运算符猜猜猜")
print("=" * 30)
score = 0
questions = 5
for i in range(questions):
# 生成题目
num1 = random.randint(1, 20)
num2 = random.randint(1, 20)
# 随机选择运算符
ops = [('+', num1 + num2),
('-', num1 - num2),
('*', num1 * num2),
('//', num1 // num2 if num2 != 0 else 0)]
op, answer = random.choice(ops)
# 显示题目
print(f"\n第{i+1}题:{num1} {op} {num2} = ?")
try:
user_answer = int(input("你的答案:"))
if user_answer == answer:
print("✅ 正确!")
score += 1
else:
print(f"❌ 错误!正确答案是:{answer}")
except:
print("❌ 请输入整数!")
print(f"\n📊 得分:{score}/{questions}")
if score == questions:
print("🎉 运算天才!")
elif score >= questions * 0.7:
print("👍 很棒!继续努力!")
else:
print("💪 加油!多练习会更棒!")
游戏2:数字比较挑战
# 数字比较挑战
import random
print("⚖️ 数字比较挑战")
print("=" * 30)
score = 0
questions = 5
for i in range(questions):
# 生成两个数字
a = random.randint(1, 50)
b = random.randint(1, 50)
# 随机生成比较题
comparisons = [
(f"{a} > {b}", a > b),
(f"{a} < {b}", a < b),
(f"{a} == {b}", a == b),
(f"{a} != {b}", a != b),
(f"{a} >= {b}", a >= b),
(f"{a} <= {b}", a <= b)
]
question, answer = random.choice(comparisons)
print(f"\n第{i+1}题:{question} 是对还是错?")
print("1. 对")
print("2. 错")
try:
choice = int(input("你的选择:"))
if (choice == 1 and answer) or (choice == 2 and not answer):
print("✅ 正确!")
score += 1
else:
print(f"❌ 错误!正确答案是:{'对' if answer else '错'}")
except:
print("❌ 请输入1或2!")
print(f"\n📊 得分:{score}/{questions}")
if score == questions:
print("🎉 比较高手!")
elif score >= questions * 0.7:
print("👍 很不错!")
else:
print("💪 继续加油!")
📅 下节课预告
第14课:逻辑小侦探——and、or、not
下节课你将学习:
- 逻辑运算符
and、or、not的用法 - 如何组合多个条件判断
- 逻辑运算的真值表
- 在实际问题中应用逻辑运算
- 制作复杂的判断程序
预习思考:
- 什么时候需要同时满足多个条件?
- 什么时候只需要满足一个条件?
- 如何取反一个判断?
💬 给家长的话
亲爱的家长:
今天孩子学习了Python中的各种运算符,这是进行数学计算和逻辑判断的基础工具。
孩子今天学会了:
- ✅ 算术运算符:加减乘除、取余、幂运算
- ✅ 比较运算符:等于、大于、小于等
- ✅ 赋值运算符:快捷的赋值方法
- ✅ 运算符优先级:正确的计算顺序
- ✅ 在实际项目中应用运算符
运算符的重要性:
| 运算符类型 | 生活示例 | 编程意义 | 思维培养 |
|----------|---------|---------|---------|
| 算术运算 | 购物计算、成绩统计 | 数学计算 | 数学思维 |
| 比较运算 | 成绩比较、身高比较 | 条件判断 | 比较思维 |
| 赋值运算 | 积分累计、计数器 | 状态更新 | 状态管理 |
| 优先级 | 复杂计算顺序 | 正确计算 | 逻辑思维 |
您可以这样做:
生活应用:
- 家庭记账:用Python计算家庭开销
- 运动统计:计算运动消耗和热量
- 成绩管理:统计分析学习成绩
- 几何计算:计算房间面积、周长
思维训练:
- 讨论:运算顺序如何影响结果?
- 思考:什么时候用整除,什么时候用除法?
- 比较:各种赋值运算符的便利性
- 实践:设计一个需要多种运算的程序
温馨提示:
- 运算是编程的基础,要多练习
- 注意运算符的优先级顺序
- 鼓励孩子在生活中发现运算问题
- 通过游戏让学习更有趣
🏆 今日成就
完成了今天的学习,你:
🧮 掌握了各种运算符
⚖️ 学会了比较判断
📝 理解了赋值运算
🎯 掌握了优先级规则
🎮 完成了运算游戏
挑战任务:
- 为家庭设计一个记账程序
- 制作个人运动统计系统
- 创建一个几何图形计算器
- 设计数学运算练习游戏
🌟 编程心法
运算符是程序的工具
加减乘除,计算万物
大于小于,比较高低
赋值更新,记录变化
优先级是指挥
括号是法宝
掌握运算之道
让计算机为你效力
从简单计算到复杂判断
运算符是你的得力助手
记住:熟练使用运算符,让你的程序能进行各种复杂的计算和判断。这是编程的基本功,也是创造力的基础!
第13课结束。你现在已经掌握了Python的各种运算符!
实践任务:
1. 制作家庭财务计算器
2. 设计个人健康管理程序
3. 创建几何学习工具
4. 编写数学练习游戏
下节课,让我们学习逻辑运算,成为逻辑小侦探!
第14课见!🔍