资源简介 (共20张PPT)可以复用的代码/函数/发布代码 / 导入模块并使用 /总结/2.4学习目标030201学会发布共享代码的常见方法,并能熟练使用模块解决问题。学会函数的定义和调用方法,并能熟练使用函数解决问题。了解函数的作用。当我们面对一些复杂问题时,可以采取 “自顶向下、逐步细化”的方法,即将一个完整的问题分成若干个小问题,每个小问题实现一个功能,再将每个小问题逐步细化、分解为一系列具体可实现的步骤。本节我们将围绕解决“火柴棒摆数字问题”项目展开学习,通过该项目活动,体验复用和共享代码为编程带来的便利。复杂的问题子问题1孙问题1孙问题2孙问题3子问题2孙问题1孙问题2孙问题3子问题3孙问题1孙问题2孙问题3得出结论任务一 用自定义函数实现摆数字问题问题:有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。思考:利用6根火柴棒能够列出的最大数字是多少呢?如何计算一个数需要多少根火柴棒呢?数字 0 1 2 3 4 5 6 7 8 9需要的火柴棒 6 2 5 5 4 5 6 3 7 61..列出几个用6根火柴棒摆出的数字,分别是:0 , 6 , 9 , 14 , 41 , 77 , 1112.利用6根火柴棒能够列出的最大数字是多少呢?数字“1”需要的火柴棒最少,所以能够摆出的自然数最大是111。3.要摆出数字510需要多少根火柴棒?怎么计算?将这个数的每个数位上的数字所需要的火柴棒数加起来。算法分析1.数字“1”需要的火柴棒最少,所以能够摆出的自然数最大是111。2.计算0和111之间的所有数字,统计需要的火柴棒。3.将恰好需要6根火柴棒的直接输出。如何让计算机找出数字所有数位上的数字呢?如果我们要得到 “206”个位上的“6”,哪种运算可以实现?除法、整除还是取模?我们定义一个变量n来接受取模运算的结果,用t来接受整除的结果:n 1= 206 % 10 t 1 = 206 // 10n 2= t 1 % 10 t 2 = t 1 // 10206 % 10 =6如何让计算机找出数字所有数位上的数字呢?1.将这个数除以10求余,求得个位数;2.将这个数除以十取整;3.重复以上两步,直到这个数为0。实现方法:算法的流程图描述及实现(函数设计)数字 0 1 2 3 4 5 6 7 8 9需要的火柴棒 6 2 5 5 4 5 6 3 7 6def Match_num(num):list = [6,2,5,5,4,5,6,3,7,6] # 0-9的数字分别需要多少根小棒s = 0num = int(input(“请输入0-111之间的任意一个数“))if num == 0: # 火柴棒总数变量赋初值s = list[0]else:s =0 # 火柴棒总数变量赋初值while (num>0):x=num % 10 # 取num除以10的余数,即num的个位数s=s + list[x] # 所需火柴棒数累加num=num//10 #num整除10,即去掉num的个位print( s )自定义函数Match_num(num)List=[6,2,5,5,4,5,6,3,7,6]S=0num>0i=num % 10s=s+list[i]num=num//10输出s结束否是num==0S=list[0]是否代码实现开始sum=6i=0i<111Match_num(i)==sum 输出ii = i+1结束否否是是sum=6i =0while(i<=111) :if (Match_ num(i)==sum) :print(i)i=i+1else:i=i+1函数函数可分为系统函数和用户自定义函数两种类型。系统函数即函数库中的标准函数。在前面单元使用过的print()和input()函数都是系统函数。自定义函数基本格式:def 函数名(参数): #函数说明语句或语句组(函数体)return 返回值参数是用来向函数传递值的,当有多个参数时, 各 个参数之间用逗号分隔开。函数执行完成后,由return语句将表达式值返回给调用者,结束函数。 函数的调用采用函数名(参数)的方式。数学运算类函数;数据转换类函数;字符串操作类函数;输人输出函数;文件操作类函数;其他类函数。案例分析:用自定义函数求n!def factorial(n): #自定义函数名为factorial,有一个参数为ns=1for i in range(2,n+1):s=s*ireturn s #函数返回值为 s#调用factorial函数total=factorial(4)print(total)任务二 发布共享代码实现火柴棒摆数字问题将“计算一个数需要多少根火柴棒”的函数match num转换为模块,然后发布。首先做好发布前的准备工作:在D:\创建一个文件夹mymodule,其中包含mymodule.py和setup.py两个文件。mymodule.py是一个模块 文件:其内容就是match_ num函数。代码发布——函数Match_ num代码代码发布——Setup.py文件包含有关发布的元数据代码发布——实现然后打开mymodule所在的目录,构建发布文件。最后将发布文件安装到你的Python本地副本中。安装完成后,mymodule文件夹包含了如图2.4.4所示的文件。如果你想让全世界都分享你的成果,你可以在互联网上发布你的代码。导入模块并使用已经构建发布的模块必须先导人程序才能使用。导人时使用语句 “import mymodule”, 调用模块内的函数时用“ mymodule.match_num( )”来实现。完善下列程序,导入安装发布好的模块mymodule,实现火柴棒摆数字问题:mymodulemymodule.match_num(i)课后练习——巩固提升课堂小结时代是思想之母,实践是理论之源。 展开更多...... 收起↑ 资源预览