版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.4可以复用的代码
【学习目标】1.了解函数的作用。2.掌握函数的定义和调用方法。3.了解发布共享代码的常见方法。
【教学重点】1.函数的定义及调用。2.模块的发布和导入使用。
【教学难点】共享代码的发布。……print()input()range()我们已经学习了哪些函数?类别函数举例系统函数数学运算符类**数据转换类int()字符串操作类len()输入输出类print()input()文件操作类open()自定义函数函数函数分类:系统函数和用户自定义函数。系统函数即函数库中的标准函数,是程序设计语言或操作系统提供给用户的一系列己经编好的程序,例如print(),input()。用户自定义函数则是用户自己编写的一段程序。函数的组成:函数一般包括函数名、参数、返回值和函数体4部分。其中函数名和函数体是必不可少的,参数和返回值可根据需要进行定义。函数def函数名(参数):#函数说明
语句或语句块return返回值参数是用来向函数传递值的,当有多个参数时各个参数由逗号分隔。函数执行完成后,由return语句将表达式值返回给调用者,结束函数。定义函数的基本格式:函数的作用:将许多相似或者相同的代码编写成函数或模块,可以减少重复编写代码量,提高代码复用效率。函数的调用:函数的调用:指函数定义以后,在代码的其他地方使用函数的动作函数的调用形式:函数名+参数函数的调用采用函数名(参数)的方式。如上例求n!中,total=factorial(4);程序执行时由于def不是主程序的一部分,因此会跳过该段代码,从主程序的第一行total=favtorial(4)开始运行。在遇到函数的调用语旬factorial(4)时,转到函数中的第一行代码开始执行。函数运行时,变量n会被赋值为4。函数执行完成返回变量s的值即24,然后回到语句total=factorial(4),将返回值赋给变量total,最后输出。例:用自定义函数编写求正方形面积defs(a):#求正方形面积s=a*areturnst=s(5)print("该正方形面积为:",t)有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。火柴棒摆数字问题:列举3个可以用6根火柴棒摆放的单个数字_____、_____、______。列出用6根火柴棒摆出的所有数字,分别是____________________。3.6根火柴棒能摆放的最大数是________。6255456376每个数字需要几个火柴棒6255456376火柴棒摆数字6根火柴棒摆出的数字是:0,6,9,14,41,77,111最大数为:111总结:要求一个数总共需要多少根火柴,可以将这个数的每个数位上的数字所需要的火柴棒数加起来。如何让计算机提取出数字中的每位数呢?想一想,如果我们想得到“125”的个位上的“5”,125与10之间用哪种运算可以实现?除、整除还是取模?125%10=5我们定义一个变量digit来接受取模运算的结果,用tens来接受整除的结果;digit1=125%10 tens1=125//10Digit2=tens1%10 tens2=tens1//10125//10=1212%10=212//10=1计算机数字中数位提取术:实现方法:1.将这个数除以10求余(取模),求得个位数;2.将这个数除以10取整数3.重复第1和第2步骤,直到这个数为012512,50,11,2火柴棒摆数字的算法及流程图表示从0到111依次判断这些数是不是恰巧需要6根火柴棒计算一个数需要多少根火柴棒?将这个数的每个数位上的数字所需要的火柴棒数加起来实现方法是将这个数对10取余,求得个位数;然后将这个个位数需要的火柴棒数累加;接着将这个数整除以10,去掉个位数;重复以上步骤直到这个数为0。6根火柴棒摆放的数字画程实现计算自然数num需要多少根火柴棒,可以分别计算num中各个数位需要多少根火柴,然后将各数位对应的火柴棒根数进行累加。第一:如何获得num各数位的值?将num除以10取余,求得个位数;然后将num除以10取整,去掉个位数。重复步骤直到num为0。显然可用while循环。第二:单个数字0~9需要的火柴棒根数可预先存储到列表f中,每次循环通过提取的每位数字对应列表中火柴的根数进行相加即可。第三:最后,通过for循环遍历0—111所有的数,把符合6根火柴棒的数字筛选并输出即可。6根火柴棒摆放的数字画程实现将画程程序转换为Python程序defmatch_num(num):f=[6,2,5,5,4,5,6,3,7,6] #0~9的数字分别需要多少根小棒ifnum==0:total=6else:total=0 #火柴棒总数变量赋初值whilenum>0:x=num%10 #取num除以10的余数,即num的个位数total=total+f[x]#所需火柴棒数累加num=num//10#num整除10,即去掉num的个位数returntotal #返回需要多少根火柴棒数#以下为主程序
snum=6 #6根火柴棒print("你可以拼出这些数字:")foriinrange(112):ifmatch_num(i)==snum:#如果i需要的火柴棒数等于现有火柴棒数print(i)发布及导入、使用模块(一)发布代码首先做好发布前的准备工作。在D:\创建一个文件夹mymodule,其中包含mymodule.py和setup.py(包含发布的元数据)两个文件。mymodule.py是一个模块文件,其内容就是match_num函数。defmatch_num(num):f=[6,2,5,5,4,5,6,3,7,6] #0~9的数字分别需要多少根火柴棒ifnum==0:total=6else:total=0 #火柴棒总数变量赋初值while(num>0):x=num%10 #取num除以10的余数,即num的个位数total=total+f[x]#所需火柴棒数累加num=num//10 #num整除10,即去掉num的个位数returntotal #返回需要多少根火柴棒数setup.py文件包含有关发布的元数据,代码如下。fromdistutils.coreimportsetupsetup(name='mymodule',#参数一定要与mymodule.py文件名相同version='1.0.0',#版本号py_modules=['mymodule'],#参数一定要与mymodule.py文件名相同author='yd',#作者author_email='yd@',#作者邮箱description='计算一个数字需要多少根火柴棒',#代码功能描述)在DOS命令行中打开mymodule所在的目录,构建发布文件,命令如图1。请注意本机Python安装的位置,例子中Python安装在d:\python34文件夹中。最后将发布安装到你的Python本地副本中,如下图:安装完成后mymodule文件夹包含了如图如果你想在因特网上发布代码,让全世界都分享你的成果。可以访问PyPI网站(访问这个网站速度很慢)注册一个PyPIID,然后向PyPI上传代码。PyPI(PythonPackageIndex)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。(二)导入模块并使用
已经构建发布的模块必须先导入程序,然后才能使用。导入时使用语句“importmymodule”,调用模块内的函数时用“mymodule.match_num()”来实现。importmymodule#导入模块
snum=6print("你可以拼出这些数字:")foriinrange(112):ifmymodule.match_num(i)==snum:#调用模块内match_num()函数print(i)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年南京鼓楼医院集团宿迁医院康复治疗师招聘备考题库及一套参考答案详解
- 2026年广州市天河区灵秀小学招聘英语教师(学校自筹经费)备考题库及答案详解一套
- 2026年中能化备考题库与发展战略研究中心招聘备考题库及1套参考答案详解
- 2026年中国建设科技集团股份有限公司招聘备考题库及答案详解参考
- 2026年乐山市沙湾区医疗集团嘉农镇中心卫生院招聘备考题库附答案详解
- 2026年成方金融备考题库技术服务有限公司校园招聘5人备考题库有答案详解
- 2026年北京师范大学贵阳附属学校(小学部)临聘教师招聘备考题库及一套答案详解
- 2026年北京邮电大学网络空间安全学院招聘备考题库及一套完整答案详解
- 2026年中山大学孙逸仙纪念医院深汕中心医院公开招聘事业单位工作人员骨干人才第一批备考题库及答案详解一套
- 2026年中煤江南建设发展集团有限公司特种工程分公司招聘备考题库带答案详解
- T/CSPSTC 17-2018企业安全生产双重预防机制建设规范
- 遥感图像处理技术在城市更新中的应用
- 智慧产业园仓储项目可行性研究报告-商业计划书
- 四川省森林资源规划设计调查技术细则
- 广东省建筑装饰装修工程质量评价标准
- 楼板回顶施工方案
- DB13T 5885-2024地表基质调查规范(1∶50 000)
- 2025年度演出合同知识产权保护范本
- 区块链智能合约开发实战教程
- 2025年校长考试题库及答案
- 《煤矿开采基本概念》课件
评论
0/150
提交评论