第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

下节课你将学习:

  1. 逻辑运算符andornot的用法
  2. 如何组合多个条件判断
  3. 逻辑运算的真值表
  4. 在实际问题中应用逻辑运算
  5. 制作复杂的判断程序

预习思考

  1. 什么时候需要同时满足多个条件?
  2. 什么时候只需要满足一个条件?
  3. 如何取反一个判断?

💬 给家长的话

亲爱的家长

今天孩子学习了Python中的各种运算符,这是进行数学计算和逻辑判断的基础工具。

孩子今天学会了

  1. ✅ 算术运算符:加减乘除、取余、幂运算
  2. ✅ 比较运算符:等于、大于、小于等
  3. ✅ 赋值运算符:快捷的赋值方法
  4. ✅ 运算符优先级:正确的计算顺序
  5. ✅ 在实际项目中应用运算符

运算符的重要性

| 运算符类型 | 生活示例 | 编程意义 | 思维培养 |

|----------|---------|---------|---------|

| 算术运算 | 购物计算、成绩统计 | 数学计算 | 数学思维 |

| 比较运算 | 成绩比较、身高比较 | 条件判断 | 比较思维 |

| 赋值运算 | 积分累计、计数器 | 状态更新 | 状态管理 |

| 优先级 | 复杂计算顺序 | 正确计算 | 逻辑思维 |

您可以这样做

生活应用

  1. 家庭记账:用Python计算家庭开销
  2. 运动统计:计算运动消耗和热量
  3. 成绩管理:统计分析学习成绩
  4. 几何计算:计算房间面积、周长

思维训练

  1. 讨论:运算顺序如何影响结果?
  2. 思考:什么时候用整除,什么时候用除法?
  3. 比较:各种赋值运算符的便利性
  4. 实践:设计一个需要多种运算的程序

温馨提示

  • 运算是编程的基础,要多练习
  • 注意运算符的优先级顺序
  • 鼓励孩子在生活中发现运算问题
  • 通过游戏让学习更有趣

🏆 今日成就

完成了今天的学习,你:

🧮 掌握了各种运算符

⚖️ 学会了比较判断

📝 理解了赋值运算

🎯 掌握了优先级规则

🎮 完成了运算游戏

挑战任务

  1. 为家庭设计一个记账程序
  2. 制作个人运动统计系统
  3. 创建一个几何图形计算器
  4. 设计数学运算练习游戏

🌟 编程心法

运算符是程序的工具
加减乘除,计算万物
大于小于,比较高低
赋值更新,记录变化
优先级是指挥
括号是法宝
掌握运算之道
让计算机为你效力
从简单计算到复杂判断
运算符是你的得力助手

记住:熟练使用运算符,让你的程序能进行各种复杂的计算和判断。这是编程的基本功,也是创造力的基础!


第13课结束。你现在已经掌握了Python的各种运算符!

实践任务:

1. 制作家庭财务计算器

2. 设计个人健康管理程序

3. 创建几何学习工具

4. 编写数学练习游戏

下节课,让我们学习逻辑运算,成为逻辑小侦探!

第14课见!🔍