资源简介 (共20张PPT)python可以复用的代码2.4项目导入活动1 用自定义函数实现火柴棒摆数字问题有6根火柴棒, 列出所有能摆出的自然数, 要求火柴棒正好用完。思考,利用6根火柴棒能够列出的最大数字是多少呢?6根2根5根5根4根5根6根3根7根6根穷举法(一个一个去判断)~火柴棒摆数字问题算法分析1.数字“1”需要的火柴棒最少,所以能摆出的自然数最大是1112.计算0和111之间的所有数字,统计需要的火柴棒3.只要是恰好需要6根火柴棒的直接输出。算法流程图描述如何计算?103需要几根?把每个数位上的数字所需要的火柴棒数加起来。火柴棒摆数字问题将其转化成流程图画在图2.4.3中火柴棒摆数字问题如何让计算机找出这个数字中的所有个位数呢?(1)想一想,如果我们想得到“103”的个位上的“3”,哪种运算可以实现?除、整除还是取模?103%10=3(2)想一想,如何得到“103”的十位上的“0”,哪种运算可以实现?除、整除还是取模?(3)想一想,如何得到“103”的百位上的“1”,哪种运算可以实现?除、整除还是取模?103//10=1010//10=110%10=0x = num % 10num = num // 10num = 103x = num % 10num = num // 10x = num % 101%10=1f = [6,2,5,5,4,5,6,3,7,6]total = f[x]total = total+f[x]total = total+f[x]火柴棒摆数字问题实现方法:1.将这个数除以10求余(取模),求得个位数;2.将这个数除以10取整数3.重复第1和第2步骤,直到这个数为0编写代码:num = int(input(“请输入0-111之间的任意数字”))(xx = num % 10f = [6,2,5,5,4,5,6,3,7,6]total = total+f[x]num = num // 10火柴棒摆数字问题x=num%10total=total+f[x]输出totalf = [6,2,5,5,4,5,6,3,7,6]if num==0:total=f[0]else:total=0while(num>0):x = num%10total = total + f[x]num = num//10print(total)用自定义函数实现火柴棒摆数字问题6sum = 6i = 0while(i<=111):if(Match_num(i)==sum):print(i)i = i + 1else:i=i+1函数用户自定义函数函数库中的标准函数,是Python提供给用户的一系列已经编好的程序。如:用户根据需要编写的一段程序系统函数把某个功能的代码封装到一个代码块中,用来为某个重复使用的功能做调用的一个代码块。函数类型:def 函数名(参数):#函数说明语句或语句组return 返回值参数是用来向函数传递值的,当有多个参数时,各个参数之间用逗号隔开。函数执行完后,由return语句将表达式值返回给调用者,结束函数例如:def 函数名(参数1,参数2……):定义函数的基本格式:函数定义与调用函数的调用:指函数定义以后,在代码的其他地方使用函数的动作函数的调用形式是函数名(参数)这个函数用来求n!在遇到函数的调用语旬factorial(4)时, 转到函数中的第一行代码开始执行。函数运行时,变量n会被赋值为4。函数执行完成返回变量s的值即24,然后回到语句total = factorial(4),将返回值赋给变量 total, 最后输出。巩固练习下列代码的输出结果是 ?def sum(a,b):c=a+breturn cprint(sum(4,5))9用自定义函数实现火柴棒摆数字问题def Match_num(num):f = [6,2,5,5,4,5,6,3,7,6]if num==0:total=f[0]else:total=0while(num>0):x = num%10total = total + f[x]num = num//10return total6sum = 6i = 0while(i<=111):if(Match_num(i)==sum):print(i)i=i+1else:i=i+1①②③⑤④发布代码任务二 发布共享代码实现火柴棒摆数字问题首先做好发布前的准备工作。在D:\创建一个文件夹mymodule, 其中包含mymodule.py和setup.py两个文件。mymodule.py是一个模块文件, 其内容就是match_num函数。setup.py文件包含有关发布的元数据。请将 “计算一个数字需要多少 根火柴棒" 的函数match_num转换为模块 , 然后发布。def Match_num(num):f = [6,2,5,5,4,5,6,3,7,6]if num==0:total=f[0]else:total=0while(num>0):x = num%10total = total + f[x]num = num//10return totalfrom distutils.core import setupsetup(name='mymodule’, #参数一定要与mymodule.py文件名相同version='l.0.0’, #版本号#参数一定要与mymodule.py文件名相同py_modules=['mymodule’],author='yd’, #作者author_email='yd@’ ,#作者邮箱#代码功能描述description='计算一个数字需要多少根火柴棒',)构建发布文件然后打开mymodule所在的目录,构建发布文件。 最后将发布文件安装到你的Python本地副本中。 安装完成后, mymodule文件夹包含了如图2.4.4所示的文件。将发布安装在你的python的本地副本中导入并使用模块导入语句 import mymodule调用模块内的函数时用 mymodule.match_num(参数) 来实现。发布代码操作习题讲解已知图中各边长,求多边形的面积math模块中定义了sqrt(求平方根)函数巩固提升def shengxiao(year):animal=[“鼠”,”牛” ,”虎” ,”兔” ,”龙” ,”蛇” ,”马” ,”羊” ,”猴” ,”鸡” ,”狗” ,”猪”]index=(myyear-1972)%12return indexmyyear = int(input(“请输入你的出生年份”))while myyear!=0:print(shengxiao(myyear))请编写程序,实现输入一个人的出生年份(>=1900),输出他的生肖小结pythonTHANKYOU 展开更多...... 收起↑ 资源预览