2.4 可以复用的代码 课件(共16张PPT)

资源下载
  1. 二一教育资源

2.4 可以复用的代码 课件(共16张PPT)

资源简介

(共16张PPT)
2.4
可以复用的代码
——编程解决火柴棒摆数字问题
了解函数的作用
学会函数的定义和调用方法,并能熟练使用函数解决问题
学会发布共享代码的常见方法,并能熟练使用模块解决问题
1
2
3
问题展示
现有6根火柴棒,请列出所有能摆出的自然数,要求火柴棒正好用完。
如何用程序实现?
【思考】
1、该程序中定义了一个名为________的函数
2、函数的调用采用_______________的方式?
【预热】请同学们阅读课本P42并分析以下程序代码:
def
factorial(n):
#求n!
s=1
for
i
in
range(2,n+1):
s=s
i
return
s
#调用factorial函数
total=factorial(4)
print(total)
input("运行完毕,请按回车键退出...")
3、函数执行完后,由__________语句将表达式值返回
给调用者,结束函数。
4、如果要计算8!,程序代码中该修改哪句_____________
活动一
问题热身,揭开函数的面纱
思维激发
除去这些数据的值不同,复用的代码完全一样。
解决重复相同的数据运算问题
解决代码重复使用的问题
=函数名(单元格地址)
函数名(参数)
软件
为什么要用函数?
具体调用函数时,采用的方式
电子表格
(excel或wps)
编程语言
(python)


函数分为系统函数和用户自定义函数两种类型。
1、求和函数sum(x)
2、模拟转盘抽奖游戏
3、浮点型函数float(x)
4、火柴棒摆数字问题
活动二
问题分析,设计解决问题的算法
【思考回答】
1、6根火柴棒可以摆出的最小数字是:
__________
可以摆出的最大数字为:
__________
2、要判断一个数所用的火柴数,需要对每一位上的数所用火柴数求_______
数学分析
数字
所用火柴棒数
6
2
5
5
4
5
6
3
7
6
活动二
问题分析,设计解决问题的算法
自然语言描述算法
环节
请用自然语言描述算法
列出区间
?
?
?
?
计算数量
?
?
?
?
?
比较输出
?
活动二
问题分析,设计解决问题的算法
流程图描述算法
【思考】
如果想列出8根火柴正好全部用完能摆出的数字数,
该修改的程序代码为:
活动三
运用自定义函数实现问题解决
请调试运行,将程序文件名命名为“姓名+活动3.py”,并提交至教师机,并以小组为单位进行讲解展示。
请将重复使用的部分代码定义成名为match_num的函数,完善程序代码,并调试运行
(程序名为:活动三.py)。
请在D盘创建一个名为mymodule的文件夹
在该文件夹内拷入两个文件:mymodule.py和setup.py
打开这两个文件了解其代码内容,做到融会贯通
活动四
发布共享代码
准备工作
发布模块
活动五
导入并使用模块
1、已经发布的模块在导入时要使用语句:_________________________________
2、调用模块内的函数时要用
________________________实现
常见内置模块
常见内置模块:
运行以下程序代码,体验内置模块random的使用:
import
random
num=random.randint(0,10)
print(num)
模块名
功能
Math模块
包含大量的数学函数和常用常数
Random模块
用来生成随机数
Time模块
用来获取计算机的时间信息
sys模块
包含跟python环境相关的函数
活动六
拓展练习
请完善修改程序活动六.py,实现输入一个人的出生年份(>=1900),输出他的生肖,直到输入0结束。
def
shengxiao(year):
#求生肖
zodiac=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]
index=(year-1972)%12
return
______
#以下为主程序
myyear=int(input("请输入出生年份,输入0结束:"))
while
myyear!=0:
print("你的生肖是:",_________)
myyear=int(input("请输入出生年份,输入0结束:"))
活动七
展示与评价
评价方面
学习内容
完全掌握
(√)
部分掌握
(√)
需要继续学习
(√)
知识学习
1.了解函数的作用
?
?
?
2.知道函数的定义方法和调用方法
?
?
?
3.会发布代码并能用模块解决问题
?
?
?
4.了解python常见内置模块的功能
?
?
?
课堂表现
?
是(√)
否(√)
主动思考,积极参加项目活动
?
?
主动展示,积极参与组内讨论
?
?
课堂收获
?
是(√)
否(√)
能够将大问题分解成小问题,并转化为算法思想
?
?
逐步养成严谨、扎实的学习品质
?
?
THANK
YOU

展开更多......

收起↑

资源预览