1、信息技术备课组2.4 可以复用的代码可以复用的代码本节课学习目标本节课学习目标u了解函数的作用了解函数的作用u学会函数的定义和调用方法,并能熟练使用函数解决问题学会函数的定义和调用方法,并能熟练使用函数解决问题u学会发布共享代码的常见方法,并能熟练使用模块解决问题学会发布共享代码的常见方法,并能熟练使用模块解决问题信息技术备课组2.4 可以复用的代码可以复用的代码任务任务1:自定义函数解决火柴棒摆数字问题:自定义函数解决火柴棒摆数字问题 有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。如下图所示。n活动活动1 用流程图表述问题解决的思路信息技术备课组2.4 可以复用的代码可以复用的代
2、码任务任务1:自定义函数解决火柴棒摆数字问题:自定义函数解决火柴棒摆数字问题 有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。n活动活动1 用流程图表述问题解决的思路【分析分析】要找出这些自然数,可以从要找出这些自然数,可以从0到到111,依次判断这些数是不是恰巧需要依次判断这些数是不是恰巧需要6根火柴棒。根火柴棒。因为摆因为摆1需要需要2根火柴棒,是需要火柴棒最少根火柴棒,是需要火柴棒最少的数字,因此的数字,因此6根火柴棒能摆出的最大自然数根火柴棒能摆出的最大自然数就是就是111。将以上想法用流程图表示出来。将以上想法用流程图表示出来。信息技术备课组2.4 可以复用的代码可以复用的
3、代码任务任务1:自定义函数解决火柴棒摆数字问题:自定义函数解决火柴棒摆数字问题 有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。n活动活动1 用流程图表述问题解决的思路如何计算一个数需要多少根火柴棒呢?如何计算一个数需要多少根火柴棒呢?【分析分析】可以将这个数的每个数位上的数字可以将这个数的每个数位上的数字所需要的火柴棒数加起来。所需要的火柴棒数加起来。将这个数除以将这个数除以10取余,求得个位数;然后将取余,求得个位数;然后将这个个位数需要的火柴棒数累加;接着将这这个个位数需要的火柴棒数累加;接着将这个数除以个数除以10取整,去掉个位数;重复以上步取整,去掉个位数;重复以上步骤直到
4、这个数为骤直到这个数为0.用流程图描述出来。用流程图描述出来。信息技术备课组2.4 可以复用的代码可以复用的代码 函数可分为系统函数系统函数和用户自定义函数用户自定义函数两种。系统函数系统函数即函数库中的标准函数,是程序设计语言或操作系统提供给用户的一系列已经编译好的程序。如前面学习的print()和input()函数都是系统函数。用户自定义函数用户自定义函数是用户自己编写的一段程序。函数一般包括函数名函数名、参数参数、返回值返回值和函数体函数体等四部分。其中函数名和函数体是必不可少的,参数和返回值可以根据需要进行定义。信息技术备课组2.4 可以复用的代码可以复用的代码 def 函数名(参数)
5、#函数说明语句或语句组#函数体return 返回值n格式格式 参数参数是用来向函数传递值的,当有多个参数时各个参数之间用逗号逗号隔开。函数执行完成后,由return语句将表达式值返回给调用者,结束函数。函数调用函数调用采用函数名(参数)函数名(参数)的方式。信息技术备课组2.4 可以复用的代码可以复用的代码用函数的方式求n!n!=n*(n-1)*(n-2)*3*2*1n实例实例def fac(n):#求n!s=1 for i in range(2,n+1):s=s*i return s#调用fac函数total=fac(4)print(total)input(暂停.)信息技术备课组2.4 可以
6、复用的代码可以复用的代码 1.请完成自定义函数,该函数实现计算一个数字需要多少根火柴棒数。def match_num(num):#09分别需要多少根火柴棒 f=6,2,5,5,4,5,6,3,7,6#将火柴棒总数变量total初始化 if num=0:total=f0 else:total=0 while num0:#求num的个位数x x=num%10#所需火柴棒数累加 total=total+fxnum=num/10#返回需要多少根火柴棒数 return totaln活动活动2 完成摆火柴棒问题的程序代码信息技术备课组2.4 可以复用的代码可以复用的代码 2.利用自定义函数match_nu
7、m(num),列出所有能摆出的自然数。#以下为主程序snum=6print(你可以拼出这些数字:)for i in range(112):#如果i需要的火柴棒数等于现有火柴棒数 if match_num(i)=snum:print(i)input(暂停.)n活动活动2 完成摆火柴棒问题的程序代码信息技术备课组2.4 可以复用的代码可以复用的代码任务任务2:发布共享代码:发布共享代码 任何人编写的代码都可以帮到其他人,那么如何共享这些有价值的成果呢?常见的方法是发布代码。下面将match_num转换为模块,然后发布。n活动活动3 将编写好的火柴棒摆数函数编程模块并发布共享第1步 发布准备工作。在
8、D:创建一个文件夹 mymodule,其中包含mymodule.py和setup.py两个文件。Mymodule.py是一个模块文件,其内容就是match_num函数信息技术备课组2.4 可以复用的代码可以复用的代码任务任务2:发布共享代码:发布共享代码n活动活动3 将编写好的火柴棒摆数函数编程模块并发布共享setup.py文件包含有关发布的元数据,代码如下:from distutils.core import setupsetup(name=mymodule,#参数一定要与mymodule.py文件名相同 version=1.0.0,#版本号 py_modules =mymodule,#参数
9、一定要与mymodule.py文件名相同 author=yd,#作者 author_email=,#作者邮箱 description=计算一个数字需要多少根火柴棒,#代码功能描述 )信息技术备课组2.4 可以复用的代码可以复用的代码任务任务2:发布共享代码:发布共享代码n活动活动3 将编写好的火柴棒摆数函数编程模块并发布共享第2步 构建发布文件。打开dos命令,运行以下命令行。注意python的安装位置。信息技术备课组2.4 可以复用的代码可以复用的代码任务任务2:发布共享代码:发布共享代码n活动活动3 将编写好的火柴棒摆数函数编程模块并发布共享第2步 构建发布文件。安装完成后,mymodul
10、e文件包含的文件如下:信息技术备课组2.4 可以复用的代码可以复用的代码任务任务2:发布共享代码:发布共享代码n活动活动4 导入并使用模块已经构建发布的模块必须先导入程序才能使用。导入使用语句“import mymodule”import mymodule#导入模块 snum=6#6根火柴棒 print(你可以拼出这些数字:)for i in range(112):#调用模块内match_num()函数 if mymodule.match_num(i)=snum:print(i)input(运行完毕,请按回车键退出.)信息技术备课组2.4 可以复用的代码可以复用的代码n拓展练习拓展练习 请编写程序,实现输入一个人的出生年份,输出他的生肖,直到输入0结束。def shengxiao(year):#求生肖的自定义函数 zodiac=鼠,牛,虎,兔,龙,蛇,马,羊,猴,鸡,狗,猪 index=(year-1972)%12 return zodiacindex#以下为主程序myyear=int(input(请输入出生年份,输入0结束:)while myyear!=0:print(你的生肖是:,shengxiao(myyear)myyear=int(input(请输入出生年份,输入0结束:)
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。