第十一课:代码的“积木块” – 函数 (定义和调用)
- 时长: 90 分钟
- 教学目标:
- 理解“函数”的概念:把一段常用的代码打包起来,起个名字,方便重复使用。
- 知道为什么我们需要使用函数(提高代码复用性、可读性、管理性)。
- 学习定义(创建)一个简单的函数,使用
def
关键字。 - 理解函数名称的命名规则。
- 掌握如何调用(使用)已经定义好的函数。
- 理解函数体(函数内部的代码块)需要缩进。
- 初步感知函数定义的代码在被调用之前不会执行。
课程内容
1. 复习与引入 (10 分钟)
- 复习: 快速回顾列表的进阶操作,以及使用循环和条件判断解决问题的方法。
- 提出问题: 老师提问:“假设我们需要在程序里多次完成同一个任务,比如:打印一句欢迎语,或者计算一个数字的平方并打印。每次都要写一遍同样的代码,是不是很麻烦?如果这段代码很长,或者以后想修改这段代码,是不是要改很多地方?”
- 引出函数: 就像玩积木一样,我们可以把一段常用的代码“打包”成一个有名字的“积木块”。需要用的时候,直接喊这个积木块的名字就行了,不用每次都重新搭一遍。这个“积木块”在编程里就叫做函数 (Function)。
2. 什么是函数?为什么用函数? (15 分钟)
- 概念: 函数就是一段完成特定任务的代码块,我们给它起个名字。
- 打个比方: 函数就像家里的电灯开关。你想开灯,不需要知道电灯是怎么工作的,只需要按一下开关(调用函数)就行了。或者像烤箱的“烤面包”按钮,按下去它就会自动完成一系列步骤。
- 为什么用函数?
- 省事 (代码复用): 只需要写一次函数,就可以在程序里多次调用它。
- 清晰 (提高可读性): 给一段代码起个有意义的名字(函数名),别人一看就知道这段代码是做什么的。
- 方便修改 (易于管理): 如果需要修改某个任务的代码,只需要修改函数定义的地方,所有调用这个函数的地方都会生效。
- 分工 (模块化): 把大问题分解成小任务,每个任务写一个函数,让程序结构更清晰。
3. 创造你的“积木块” – 定义函数 (20 分钟)
- 语法: 使用
def
关键字来定义一个函数,后面跟着函数名、一对括号()
和一个冒号:
。函数名后面的缩进代码块就是函数体。# 定义一个简单的函数,名字叫做 say_hello def say_hello(): # 函数体:需要缩进的代码 print("你好!") print("很高兴见到你!") # 定义另一个函数,名字叫做 print_stars def print_stars(): print("*" * 20) # 定义函数就像造积木,只是把代码包起来,这时候里面的代码还不会执行
- 函数命名规则: 函数名和变量名类似,可以使用字母、数字、下划线,不能以数字开头,不能用关键字。通常建议函数名用小写字母,多个单词用下划线分隔(例如
calculate_sum
)。函数名应该能反映函数的功能。 - 重要概念: 定义函数只是告诉 Python “有这么一个功能,它叫做
say_hello
,按下它会做这些事”。定义函数本身并不会让函数体内的代码立即执行。
4. 使用你的“积木块” – 调用函数 (15 分钟)
- 语法: 要让函数体内的代码执行,我们需要调用它。调用函数的方法是写函数名,后面加一对括号
()
。# 调用上面定义的 say_hello 函数 say_hello() # 这时候,say_hello 函数体里的代码才会执行 print("--- 分隔线 ---") # 再次调用 say_hello 函数 say_hello() # 函数体里的代码会再次执行 # 调用 print_stars 函数 print_stars()
- 演示: 老师演示定义一个函数,然后多次调用它,让学生观察函数体内的代码重复执行的效果。
# 定义一个函数,计算并打印 1 到 5 的和 def calculate_sum_1_to_5(): total = 0 for i in range(1, 6): total = total + i print("1 到 5 的和是:", total) # 调用函数 calculate_sum_1_to_5() # 第一次计算并打印和 # 再调用一次 calculate_sum_1_to_5() # 第二次计算并打印和
- 动手实践: 学生编写代码,定义一个打印自己名字的函数,然后调用它三次。 定义一个打印一行分隔符的函数,然后在程序的不同位置调用它。
5. 课堂练习 (15 分钟)
让学生独立完成以下练习:
- 练习 1: 定义一个函数
print_greeting()
,让它打印一句简单的问候语,比如“欢迎学习 Python!” 然后调用这个函数。# 在这里定义你的函数 def print_greeting(): # TODO: 在函数体里写打印问候语的代码 pass # 先用 pass 占位,防止语法错误 # 在这里调用你的函数
- 练习 2: 定义一个函数
print_square()
,让它打印一个由*
组成的 3×3 的正方形。(提示:可以使用循环)。然后在程序中调用这个函数两次。# 在这里定义你的函数 print_square() def print_square(): # TODO: 使用循环打印 3x3 的正方形 pass # 在这里调用你的函数
- 练习 3: 定义一个函数
my_info()
,让它打印你的名字和年龄(直接在函数体里写死信息即可)。然后在程序中调用这个函数。
6. 总结与提问 (10 分钟)
- 回顾: 回顾本节课内容:函数的作用(打包代码、复用),定义函数的语法
def 函数名():
和缩进的函数体,调用函数的方法函数名()
,以及函数定义和调用是两个不同的步骤,定义时代码不执行,调用时才执行。 - 提问:
- 函数是用来做什么的?
- 定义函数用哪个关键字?后面需要加什么?
- 如何让一个函数里的代码执行?
- 定义函数的时候,函数体里的代码会立即执行吗?
- 为什么要使用函数?(至少说出一点好处)
- 答疑: 回答学生问题。
7. 布置课后作业 (5 分钟)
- 作业 1: 编写一个程序,定义一个函数
print_line()
,让它打印一行由等号=
组成的分隔线(比如 30 个等号)。然后在程序的不同地方多次调用这个函数,把输出内容分隔开。 - 作业 2: 编写一个程序,定义一个函数
print_triangle()
,让它打印一个由*
组成的 4 行的直角三角形。(提示:可以在函数体里使用嵌套循环)。然后在程序中调用这个函数。 - 作业 3: 编写一个程序,定义一个函数
motivational_quote()
,让它打印一句鼓励的话,比如“坚持就是胜利!”。然后在一个for
循环里调用这个函数 5 次。 - 作业 4: (选做) 编写一个程序,定义一个函数
calculate_circle_area()
,让它计算并打印半径为 5 的圆的面积(圆周率取 3.14)。(面积公式:π * 半径 * 半径)。然后在程序中调用这个函数。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)