1、可以复用的代码 第二课时 第 2 单元 2.4 学习目标 了解函数的作用。学会函数的定义和调用方法,并能熟练使用函数解决问题。学会发布共享代码的常见方法,并能熟练使用模块解决问题。函数 函数可分为系统函数和用户自定义函数两种类型。系统函数即函数库中的标准函数。我们在之前的学习中用到的input()、print()等函数都是系统函数。函数一般包括函数名、参数、返回值和函数体等四个部分。自定义函数的基本格式如下:def 函数名(参数):语句或语句组(函数体)return 返回值 常见的系统函数有以下几种:数学运算类函数;数据转换类函数;字符串操作类函数;输入输出函数;文件操作类函数;其他类函数。自
2、定义函数 def 函数名(参数):语句或语句组(函数体)return 返回值 参数是用来向函数传递值的,当有多个参数时,各个参数之间用逗号分隔开。函数执行完成后,由return语旬将表达式值返回给调用者,结束函数。函数的调用采用函数名(参数)的方式。我们来看一个简单的例子,这个函数用来求n!。def factorial(n):#函数名为factorial,有一个参数为n s=1 for i in range(2,n+1):s=s*I return s#函数的返回值为s#调用factorial函数 total=factorial(4)print(total)函数调用 函数的调用采用函数名(参数)
3、的方式。如上例中,total=factorial(4);程序执行时由于def不是主程序的一部分,因此会跳过该段代码,从主程序的第一行total=favtorial(4)开始运行。在遇到函数的调用语旬factorial(4)时,转到函数中的第一行代码开始执行。函数运行时,变最n会被赋值为4。函数执行完成返回变量s的值即24,然后回到语旬total=factorial(4),将返回值赋给变量 total,最后输出。任务二 发布共享代码实现火柴棒摆数字问题 首先做好发布前的准备工作。在D:创建一个文件夹mymodule,其中包含mymodule.py和setup.py两个文件。mymodule.py
4、是一个模块文件,其内容就是match_num函数。请将“计算一个数字需要多少 根火柴棒 的函数match_num转换为模块,然后发布。函数match_num代码 Def match_num(num):f=6,2,5,5,4,5,6,3,7,6#09分别需要多少根火柴棒 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的个位 return total#反悔需要多少根火柴棒数 setup
5、.py文件包含有关发布的元数据,代码如下。from distutils.core import setup setup(name=mymodule,参数一定要与mymodule.py文件名相同 version=l.0.0,版本号 参数一定要与mymodule.py文件名相同 py_modules=mymodule,author=yd,作者 author_email=,作者邮箱 代码功能描述 description=计算一个数字需要多少根火柴棒,)代码实现 然后打开mymodule所在的目录,构建发布文件。最后将发布文 件安装到你的Python本地副本中。安装完成后,mymodule文件夹包含了
6、如图2.4.4所示的文件。如果你想让全世界都分享你的成果,你可以在互联网上发布你的代码。导入模块并使用 已经构建发布的模块必须先导入程序才能使用。导入时使用语旬“import mymodule”,调用模块内的函数时用“mymodule.match_num()来实现。完善下列程序,导入安装发布好的模块mymodule,实现火柴棒摆 数字问题。import mymodule 导入模块 snum=6 print(“你可以拼出这些数字:)for i in range(112):if mymodule.match_num()=sum:print(i)巩固提升 def shengxiao(year):animal=“鼠”,”牛”,”虎”,”兔”,”龙”,”蛇”,”马”,”羊”,”猴”,”鸡”,”狗”,”猪”index=(myyear-1972)%12 return index myyear=int(input(“请输入你的出生年份”)while myyear!=0:print(shengxiao(myyear)课堂小结