• ⏳ 课程时长: 90 分钟
  • 🎯 教学目标:
    • 🧙‍♂️ 理解函数:把一段代码“起个名字”存起来。
    • 📝 定义函数:使用 def 关键词创造技能。
    • 📣 调用函数:如何使用你创造的技能。
    • 🪙 参数传递:给函数“投币”,让它处理不同的数据。

📖 课程内容

1. 🤔 引入:生日歌的烦恼 (10 分钟)

今天是三胞胎(大毛、二毛、三毛)的生日。你要给他们唱生日歌。 如果不发函数,代码是这样的:

print("祝 大毛 生日快乐!")
print("祝你天天开心!")
print("----------------")

print("祝 二毛 生日快乐!")
print("祝你天天开心!")
print("----------------")

print("祝 三毛 生日快乐!")
print("祝你天天开心!")
print("----------------")

太累了!而且如果我想把“天天开心”改成“学业进步”,我得改 3 次!😫

2. 📜 创造咒语:定义函数 (20 分钟)

我们可以把唱生日歌这段逻辑,打包成一个叫 sing_birthday 的新命令。

  • 语法结构:

    def 函数名():
        # 这里写函数要干的事
        # (记得缩进!)
    • def: 是 Define (定义) 的缩写。
  • 💻 示例:

    def sing_song():
        print("🎵 祝你生日快乐!")
        print("🎵 祝你天天开心!")
        print("----------------")
  • ⚠️ 重要提醒: 光写上面的代码,什么都不会发生! 这就像你在魔法书里写下了一个咒语,但你还没有出来。

3. 📣 施展咒语:调用函数 (10 分钟)

要让函数跑起来,你需要调用 (Call) 它。 方法很简单:喊它的名字,加上括号!

# 1. 先定义 (抄写在魔法书上)
def sing_song():
    print("🎵 祝你生日快乐!")
    print("----------------")

# 2. 后调用 (念出咒语)
print("开始派对!")
sing_song()  # 第一次调用
sing_song()  # 第二次调用
sing_song()  # 第三次调用

看!现在想改歌词,只要在 def 那里改一次,所有地方都变了!

4. 🪙 神奇的投币口:参数 (25 分钟)

上面的函数有个缺点:它不知道是对谁唱的。 我们希望函数能接收一些信息,就像自动贩卖机接收硬币一样。 这个“接收口”,叫参数 (Parameter)

  • 定义带参数的函数:

    def sing_to(name):  # name 就是一个变量,等着接收数据
        print(f"祝 {name} 生日快乐!") 
  • 调用带参数的函数:

    sing_to("大毛")  # 把 "大毛" 扔进 name 里
    sing_to("二毛")  # 把 "二毛" 扔进 name 里
  • 🤹 多个参数: 可以用逗号隔开,接收多个数据。

    def introduce(name, age):
        print(f"大家好,我是 {name},今年 {age} 岁。")
    
    introduce("小明", 12)
    introduce("Alice", 10)

5. ✨ 多元化场景实战 (20 分钟)

函数能帮我们把复杂的事情变简单!

场景 A:📐 自动画图师 写一个函数,打印任意大小的正方形。

def draw_square(size):
    print(f"--- 画一个边长为 {size} 的正方形 ---")
    for i in range(size):
        print("口 " * size) # 用口字模拟正方形

draw_square(3)
draw_square(5)

场景 B:🚑 游戏治疗术 在游戏里,给角色加血。

def heal(player_name, hp):
    print(f"✨ 治愈光波!")
    print(f"{player_name} 恢复了 {hp} 点生命值!")

heal("勇者", 50)
heal("法师", 30)

场景 C:🧮 超级计算器 把加法封装起来。

def add_numbers(a, b):
    result = a + b
    print(f"{a} + {b} = {result}")

add_numbers(10, 20)
add_numbers(100, 500)

6. ⚠️ 常见坑点 (5 分钟)

  1. 🚫 忘记括号: 调用时写 sing_song ❌,必须写 sing_song() ✅。
  2. 🚫 顺序搞反: 定义 def introduce(name, age),调用时写 introduce(10, "小明"),结果变成“我是10,今年小明岁”… 😅
  3. 🚫 缩进错误: def 下面的代码必须缩进,不然电脑不知道哪些代码属于这个函数。

💪 课堂大练兵 (10 分钟)

  1. 👋 打招呼: 定义一个函数 say_hi(name),调用它时打印 “你好,[name]!今天过得怎么样?”

  2. 🍩 甜甜圈价格计算器: 定义一个函数 calc_price(count),假设甜甜圈 5 元一个。 传入数量,打印 “你需要支付 [总价] 元”。


📝 课程总结 (5 分钟)

  1. DRY 原则: Don’t Repeat Yourself(不要重复自己)。
  2. 定义: def 名字(): 就像写说明书。
  3. 调用: 名字() 就像按按钮执行。
  4. 参数: 括号里的变量,用来从外面接收数据。

🏠 课后作业 (5 分钟)

  1. 💳 个人名片生成器: 定义一个函数 make_card(name, job, phone)。 调用它 make_card("钢铁侠", "超级英雄", "12345"),它能打印出一个漂亮的方框名片。

  2. 🔢 升级版奇偶判断: 定义一个函数 check_number(num)。 如果 num 是偶数,打印“偶数”;是奇数,打印“奇数”。 然后写一个循环,让用户输入 3 个数字,每次都调用这个函数来判断。

  3. 🚀 火箭发射台 (选做): 定义一个函数 countdown(start_num)。 如果传入 5,它就打印 5, 4, 3, 2, 1, 发射! 如果传入 3,它就打印 3, 2, 1, 发射! (提示:结合 for 循环或 while 循环)


下节课预告: 我们的函数现在只会“打印”东西,能不能让它把算好的结果“还给我们”,让我们拿去继续用呢?(比如算出总价后,再用另一个函数打折)。 下节课,我们学习函数的“返回值 (Return)”“数据大仓库 – 列表”!🔙📦

下次见,大法师们!👋

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。