新教科版-高一信息技术-24-可以复用的代码课件_第1页
新教科版-高一信息技术-24-可以复用的代码课件_第2页
新教科版-高一信息技术-24-可以复用的代码课件_第3页
新教科版-高一信息技术-24-可以复用的代码课件_第4页
新教科版-高一信息技术-24-可以复用的代码课件_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2.4 可以复用的代码2.4 可以复用的代码【学习目标】1.了解函数的作用。2.掌握函数的定义和调用方法。3.了解发布共享代码的常见方法。【教学重点】1.函数的定义及调用。2.模块的发布和导入使用。 【教学难点】共享代码的发布。【学习目标】有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。火柴棒摆数字问题:列举3个可以用6根火柴棒摆放的数字_、_、_。2. 6根火柴棒能摆放的最大数是_。有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。火现有6根火柴棒,请列出所有能摆出的自然数,要求火柴棒正好用完。如何用程序实现?火柴棒摆数字现有6根火柴棒,请列出所有能摆出的自然数,要求火柴棒

2、正好用完每个数字需要几个火柴棒6 2 5 5 4 5 6 3 7 6火柴棒摆数字每个数字需要几个火柴棒6 2 5 5 4 5 66个火柴棒可以摆出的最大数字火柴棒摆数字6个火柴棒可以摆出的最大数字火柴棒摆数字 问题分析,设计解决问题的算法数字所用火柴棒数6255456376【思考回答】1、6根火柴棒可以摆出的最小数字是: _可以摆出的最大数字为:_2、要判断一个数所用的火柴数,需要对每一位上的数所用火柴数求_数学分析 问题分析,设计解决问题的算法数字所用火柴棒数6255456 问题分析,设计解决问题的算法自然语言描述算法环节请用自然语言描述算法列出区间计算数量比较输出哪一部分是要重复使用的?

3、问题分析,设计解决问题的算法自然语言描述算法环节请用自然 问题分析,设计解决问题的算法流程图描述算法 问题分析,设计解决问题的算法流程图描述算法能用6根火柴棒摆出的数字的流程图snum=6 #6根火柴棒print(你可以拼出这些数字:)for i in range(112): if (match-num(i)=snum: #如果i需要的火柴棒数等于现有火柴棒数 print(i)1. 数字“1”需要的火柴棒最少,因此能摆出的自然数最大是111。2. 对0-111之间的每一个数进行计算,统计需要的火柴棒根数。3. 凡是恰好需要6根火柴棒的数直接输出。能用6根火柴棒摆出的数字能用6根火柴棒摆出的数字

4、的流程图snum=6 【预热】请同学们阅读课本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(运行完毕,请按回车键退出.)【思考】 1、该程序中定义了一个名为_的函数2、函数的调用采用_的方式?3、函数执行完后,由_语句将表达式值返回给调用者,结束函数。4、如果要计算8!,程序代码中该修改哪句_揭开函数的面纱 【预热】请同学们阅读课本P42并分析以下程序代码:【思考】 函数def facto

5、rial(n): #求n!s=1 for i in range(2,n+1): s=s*i return s#调用factorial函数total=factorial(4)print(total)函数分类:系统函数和用户自定义函数,体现共性和个性的问题。系统函数即函数库中的标准函数,是程序设计语言或操作系统提供给用户的一系列己经编好的程序。用户自定义函数则是用户自己编写的一段程序。由于def块中的代码不是主程序的一部分,会跳过该段代码;从主程序第一行total = factorial(4)开始执行。遇到函数的调用语句factorial(4)时,转到自定义函数中的第一行代码开始执行。函数运行时,

6、变量n会被赋值为4。执行完成返回变量s的值即24,回到语句total = factorial(4), 将返回值赋给变量total,最后输出。s=1for i in range(2,n+1): s=s*is=1*2 s=2*3 s=6*4 s=2 s=6 s=24函数def factorial(n):函数分类:系统函数和用函数的组成:函数一般包括函数名、参数、返回值和函数体4部分。其中函数名和函数体是必不可少的,参数和返回值可根据需要进行定义。函数def 函数名(参数): #函数说明 语句或语句组 return 返回值参数是用来向函数传递值的,当有多个参数时各个参数由逗号分隔。函数执行完成后,由

7、return语句将表达式值返回给调用者,结束函数。函数的组成:函数def 函数名(参数):参数是用来向函数传递求一个数字所用火柴棒数 一个数需要火柴棒:将这个数的每个数位上的数字所需要的火柴棒数加起来。(某数为abc,火柴棒总数=c用火柴棒数+b用火柴棒数+a用火柴棒数)实现方法: 将这个数除以10取余,求得个位数; 然后将这个个位数需要的火柴棒数累加; 接着将这个数除以10取整,去掉个位数;重复以上步骤直到这个数为0。求42需要火柴棒个数:(1)42/10=4余2,个位数2需火柴棒5根。(2)42/10=4,十位数4需火柴棒4根。因此,42需要9根火柴棒。图2.4.3一个数需要火柴棒数流程图

8、求一个数字所用火柴棒数 一个数需要火柴棒:将这个一个数需火柴棒数num=int(input(“请输入一个数“)f=6,2,5,5,4,5,6,3,7,6# 0-9的数字分别需要火柴棒数if num=0: # 火柴棒总数变量赋初值 total=f0 else: total=0# 火柴棒总数变量赋初值while (num0):x=num % 10 # 取num除以10的余数,即num的个位数total=total+fx # 所需火柴棒数累加num=num/10 #num整除10,即去掉num的个位print(total)编程实现一个数需火柴棒数一个数需火柴棒数num=int(input(“请输入一

9、个数“火柴棒摆数字的算法及流程图表示从0到111依次判断这些数是不是恰巧需要6根火柴棒将这个数的每个数位上的数字所需要的火柴棒数加起来将这个数的每个数位上的数字所需要的火柴棒数加起来。实现方法是将这个数除以10取余,求得个位数;然后将这个个位数需要的火柴棒数累加;接着将这个数除以10取整,去掉个位数;重复以上步骤直到这个数为0。火柴棒摆数字的算法及流程图表示从0到111依次判断这些数是不火柴棒摆放的数字画程实现计算自然数num需要多少根火柴棒,可以分别计算num中各个数位需要多少根火柴,然后将各数位对应的火柴棒根数进行累加。如何获得num各数位的值?将num除以10取余,求得个位数;然后将nu

10、m除以10取整,去掉个位数。 重复步骤直到num为0。显然可用while循环。 单个数字09需要的火柴棒根数可预先存储到列表f中。火柴棒摆放的数字画程实现计算自然数num需要多少根火柴棒,可6根火柴棒摆放的数字画程实现将画程程序转换为Python程序def match_num(num): f=6,2,5,5,4,5,6,3,7,6 # 09的数字分别需要多少根小棒 if num=0: total=6 else: total=0 # 火柴棒总数变量赋初值 while (num0): x=num % 10 # 取num除以10的余数,即num的个位数 total=total+fx # 所需火柴棒数

11、累加 num=num/10 #num整除10,即去掉num的个位数 return total #返回需要多少根火柴棒数#以下为主程序 snum=6 # 6根火柴棒print(你可以拼出这些数字:)for i in range(112): if match_num(i)=snum: #如果i需要的火柴棒数等于现有火柴棒数 print (i)6根火柴棒摆放的数字画程实现将画程程序转换为Python程序练习请完善修改程序活动六.py,实现输入一个人的出生年份(=1900),输出他的生肖,直到输入0结束。def shengxiao(year): #求生肖 zodiac=鼠,牛,虎,兔,龙,蛇,马,羊,

12、猴,鸡,狗,猪 index=(year-1972)%12 return _ #以下为主程序myyear=int(input(请输入出生年份,输入0结束:)while myyear!=0: print(你的生肖是:,_) myyear=int(input(请输入出生年份,输入0结束:)练习请完善修改程序活动六.py,实现输入一个人的出生年份( 请将“计算一个数字需要多少根火柴棒”的函数match-num转换为模块,然后发布。首先做好发布前的准备工作。在D:创建一个文件夹mymodule,其中包含mymodule.py和setup.py两个文件。 mymodule.py是一个模块文件,其内容就是m

13、atch-num函数。发布代码 请将“计算一个数字需要多少根火柴棒”的函数madef match_num(num) f=6,2,5,5,4,5,6,3,7,6 #0至9分别需要多少根火柴棒 if num=0: #将火柴棒总数变量赋初值 total=f(0) else: total=0 while (num0): x=num % 10 #取num除以10的余数,即num的个位数 total=total+f(x) #所需火柴棒数累加 num=num/10 # num整除10,即去掉num的个位数 return total #返回需要多少根火柴棒from distutils.core import

14、setupsetup( name=mymodule, version=1.0.0, py_modules=mymodule, author=yd, author_email=yd, description=计算一个数字需要多少根火柴棒, )def match_num(num)from distuti在DOS命令行中打开mymodule所在的目录,构建发布文件,命令如图1。请注意本机Python安装的位置,例子中Python安装在d:python34文件夹中。最后将发布安装到你的Python本地副本中,如下图安装完成后mymodule文件夹包含了如图如果你想在因特网上发布代码,让全世界都分享你的

15、成果。可以访问PyPI网站(访问这个网站速度很慢)注册一个PyPI ID,然后向PyPI上传代码。PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。在DOS命令行中打开mymodule所在的目录,构建发布文件 已经构建发布的模块必须先导入程序,然后才能使用。 可使用语句“import mymodule”导入。import mymodule #导入模块snum=6print(你可以拼出这些数字:)for i in range(112): if mymodule.match_num()=sum: print

16、(i)导入模块并使用 已经构建发布的模块必须先导入程序,然后才能使用123请在D盘创建一个名为mymodule的文件夹在该文件夹内拷入两个文件:mymodule.py和setup.py打开这两个文件了解其代码内容,做到融会贯通总结:发布共享代码准备工作发布模块123请在D盘创建一个名为mymodule的文件夹在该文件夹举一反三体验模块调用总结: 导入并使用模块1、已经发布的模块在导入时要使用语句:_2、调用模块内的函数时要用_实现如果发布的模块名为test,其模块内定义的函数名为huochaishu,该程序中该修改的语句为:_知识补充常见内置模块举一反三体验模块调用总结: 导入并使用模块1、已经发布的模常见内置模块:运行以下程序代码,体验内置模块random的使用:import randomnum=random.randint(0,10) print(num)模块名功能Math模块 包含大量的数学函数和常用常数Random模块 用来生成随机数Time模块 用来获取计算机的时间信息sys模块 包含跟pyth

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论