资源简介 (共26张PPT)复习巩固顺序结构分支结构计算机解决问题的一般过程算法的三种基本结构循环结构把大象装进冰箱需要几步1、打开冰箱2、装进大象3、关闭冰箱把大象装进冰箱需要几步如何打开冰箱?如何装进大象?如何关闭冰箱?检查电源是否接通启动冰箱打开拉手确定体型确定体重确定··· ···搬进冰箱保持电源畅通再次检查关闭拉手把大象装进冰箱需要几步如何打开冰箱?如何装进大象?如何关闭冰箱?三个模块中又需要做流程图,再细分,每个步骤又可以细化做流程图,因此用模块化的思想来说,这三个步骤各是三个模块,实现三个功能,而每个功能组合,是完整的主题任务方案。2.4 可以复用的代码项目: 解决火柴棒摆数字问题活动1 用流程图表述问题解决的思路有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。思考:6根火柴棒能摆放的最大数是多少?任务一 用自定义函数实现火柴棒摆数字问题如何计算一个数需要多少根火柴棒呢 数字 0 1 2 3 4 5 6 7 8 9需要的 火柴棒6 2 5 5 4 5 6 3 7 6可以用6根火柴棒摆放的数字,分别是、 、 、 、 、 、 。069144177111要摆出106这个数字需要多少根火柴棒?怎么计算?有6根火柴棒,列出所有能摆出的自然数要求火柴棒正好用完。分析问题:如何让计算机找出这个数字中的所有位数上的数字呢?想一想,如果我们想得到125的个位上的5,那种运算可以实现?除?整数?还是取模?125 % 10 = 5我们定义一个变量digit来接受取模运算的结果,用tens来接受整除的结果digit1=125%10tens1=125//10digit2=tens1%10tens2=tens1//1051221设计算法:如何让计算机找出这个数字中的所有位数上的数字呢?例:123123%10 3123//10 1212%10 212//10 11%10 11//10 0实现方法:1、将这个数除以10求余(取模),求得个位数2、将这个数除以10取整数3、重复第1和第2步骤,直到这个数为0代码实现:如何让计算机找出这个数字中的所有位数上的数字?list=[6,2,5,5,4,5,6,3,7,6]数字 0 1 2 3 4 5 6 7 8 9需要的 火柴棒 6 2 5 5 4 5 6 3 7 6num=int(input("请输入0-111之间的任意数字:"))s=0while (num>0):i=num % 10s=s+list[i]num=num//10设计函数:计算摆出一个数字需要的火柴棒数自定义函数match-num(num)list=[6,2,5,5,4,5,6,3,7,6]S=0i=num%10num>0s=s+list==[i]num=num//10输出s结束是否def macth_num(num):list=[6,2,5,5,4,5,6,3,7,6]s=0while (num>0):i=num % 10s=s+list[x] num=num//10print(s)代码实现:计算6根火柴棒能摆出的数字开始sum=6i=0i<=111i=i+1输出i结束是否Match_num(i)==sum 是否sum=6i=0while (i<=111):if(Match_num(i)==sum):print(i)i=i+1else:i=i+1调用函数函数1、概念:将一组语句用一个名字封装起来2、分类系统函数函数库中的标准函数,是程序设计语言或操作系统提供给用户的一系列已经编好的程序。print( ) input( )max( ) min( )自定义函数用户自定义函数用户自己编写的一段程序。常见系统函数有以下几种:数学运算类函数数据转换类函数字符串操作类函数输入输出函数文件操作类函数其他函数函数3、函数定义与使用def 函数名(参数):#函数说明语句或语句组return 返回值定义函数的基本格式:向函数传递值,多个参数用逗号隔开将表达式的值返回给调用者重复使用的代码冒号缩进函 数 名参 数函 数 体返 回 体同变量命名规则4、函数调用def factorial(n):s=1for i in range(2,n+1):s=s*ireturn s#调用factorial函数total=factorial(4)print(total)采用函数名(参数)的方式因为出现def,所以跳过因此,这一行才是主程序的第一行,从这里开始执行。程序自上而下逐行执行这里调用函数,参数n变成4试一试1.在 Python 语言中,创建自定义函数的语法规范是( )。A.del函数名(参数): B.def函数名(参数):C.define函数名(参数): D.sub函数名(参数):2.一下程序的输出错误的是( )A.81 7 B. 4 4 C.12 7 D.hellodef mypow(x,y=2):return x**y,x+yprint(“hello”)a,b=mypow(3,4)print(a,b)BA试一试def factorial(n):#求n!s=1for I in range(2,n+1):s=s+ireturn s#调用factorial函数total=factorial(4)print(total)代码复用的常见方法函数模块math模块导入模块模块中的函数包含一些常用的数学函数sin() cos()sqrt() abs()使用函数模块名.函数名()例:math.sqrt()import 模块名例:import math巩固提升1.下列代码的输出结果是什么?( )def sum(a,b):c=a+breturn cprint(sum(4,5))A.4 B.5 C.9 D.1C巩固提升1.下列代码的输出结果是什么?( )def sum(a,b):c=a+breturn cprint(sum(4,5))A.4 B.5 C.9 D.1C巩固提升def f(n):s=1for i in range(2,n+1):s=s*ireturn sx=int(______________________)sum=0for j in range(__,_____):sum=__________print(sum)计算1!+2!+3!+......+(x-1)!+x! (x由键盘输入)input(“请输入x:”)1x+1sum+f(j)巩固提升def shengxiao(year):#求生肖zodiac=[“鼠”,“牛”,“虎”,“兔”,“龙”,“蛇”,“马”,“羊”,“猴”,“鸡”,“狗”,“猪”]index=(year-1972)%12return zodiac=[ index]P45 扩展练习请编写程序,实现输入一个农历年份(>=1900),输出该年对应的生肖,直到输入0结束,运行结果如图2.4.5所示。#以下为主程序myyear=int(input(“请输入农历年份,输出0结束:”))while myyear!=0print(“生肖是:”,shengxiao(myyear))myyear=int(input(“请输入农历年份,输入0结束:”))巩固提升1.下列代码的输出结果是什么?( )def sum(a,b):c=a+breturn cprint(sum(4,5))A.4 B.5 C.9 D.1C课堂小结可以复用的代码函数系统函数,如input()、print()用户自定义函数def function(参数)语句或语句组返回值函数调用——通过函数名调用共享代码的发布模块的导入使用import模块名称num=int(input("请输入一个数:")) f=[6,2,5,5,4,5,6,3,7,6]total=0while (num>0):x=num % 10 total=total+f[x] num=num//10print(total)# 输入一个自然数# 0-9的数字分别需要多少根小棒# 火柴棒总数变量赋初值# 取num的个位数# 所需火柴棒数累加# 去掉num的个位 展开更多...... 收起↑ 资源预览