2.4 可以复用的代码 课件(共26张PPT) 2023—2024学年教科版(2019)高中信息技术必修1

资源下载
  1. 二一教育资源

2.4 可以复用的代码 课件(共26张PPT) 2023—2024学年教科版(2019)高中信息技术必修1

资源简介

(共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根火柴棒摆放的数字,分别是
、 、 、 、 、 、 。
0
6
9
14
41
77
111
要摆出106这个数字需要多少根火柴棒?怎么计算?
有6根火柴棒,列出所有能摆出的自然数
要求火柴棒正好用完。
分析问题:如何让计算机找出这个数字中的所有位数上的数字呢?
想一想,如果我们想得到125的个位上的5,那种运算可以实现?
除?整数?还是取模?
125 % 10 = 5
我们定义一个变量digit来接受取模运算的结果,用tens来接受整除的结果
digit1=125%10
tens1=125//10
digit2=tens1%10
tens2=tens1//10
5
12
2
1
设计算法:如何让计算机找出这个数字中的所有位数上的数字呢?
例:123
123%10 3
123//10 12
12%10 2
12//10 1
1%10 1
1//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 6
num=int(input("请输入0-111之间的任意数字:"))
s=0
while (num>0):
i=num % 10
s=s+list[i]
num=num//10
设计函数:计算摆出一个数字需要的火柴棒数
自定义函数
match-num(num)
list=[6,2,5,5,4,5,6,3,7,6]
S=0
i=num%10
num>0
s=s+list==[i]
num=num//10
输出s
结束


def macth_num(num):
list=[6,2,5,5,4,5,6,3,7,6]
s=0
while (num>0):
i=num % 10
s=s+list[x] num=num//10
print(s)
代码实现:计算6根火柴棒能摆出的数字
开始
sum=6
i=0
i<=111
i=i+1
输出i
结束


Match_num(i)==sum


sum=6
i=0
while (i<=111):
if(Match_num(i)==sum):
print(i)
i=i+1
else:
i=i+1
调用函数
函数
1、概念:将一组语句用一个名字封装起来
2、分类
系统函数
函数库中的标准函数,是程序设计语言或操作系统提供给用户的一系列已经编好的程序。
print( ) input( )
max( ) min( )
自定义函数
用户自定义函数
用户自己编写的一段程序。
常见系统函数有以下几种:
数学运算类函数
数据转换类函数
字符串操作类函数
输入输出函数
文件操作类函数
其他函数
函数
3、函数定义与使用
def 函数名(参数):
#函数说明
语句或语句组
return 返回值
定义函数的基本格式:
向函数传递值,多个参数用逗号隔开
将表达式的值返回给调用者
重复使用的代码
冒号
缩进
函 数 名
参 数
函 数 体
返 回 体
同变量命名规则
4、函数调用
def factorial(n):
s=1
for i in range(2,n+1):
s=s*i
return 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.hello
def mypow(x,y=2):
return x**y,x+y
print(“hello”)
a,b=mypow(3,4)
print(a,b)
B
A
试一试
def factorial(n):
#求n!
s=1
for I in range(2,n+1):
s=s+i
return s
#调用factorial函数
total=factorial(4)
print(total)
代码复用的常见方法
函数
模块
math模块
导入模块
模块中的函数
包含一些常用的数学函数
sin() cos()
sqrt() abs()
使用函数
模块名.函数名()
例:math.sqrt()
import 模块名
例:import math
巩固提升
1.下列代码的输出结果是什么?( )
def sum(a,b):
c=a+b
return c
print(sum(4,5))
A.4 B.5 C.9 D.1
C
巩固提升
1.下列代码的输出结果是什么?( )
def sum(a,b):
c=a+b
return c
print(sum(4,5))
A.4 B.5 C.9 D.1
C
巩固提升
def f(n):
s=1
for i in range(2,n+1):
s=s*i
return s
x=int(______________________)
sum=0
for j in range(__,_____):
sum=__________
print(sum)
计算1!+2!+3!+......+(x-1)!+x! (x由键盘输入)
input(“请输入x:”)
1
x+1
sum+f(j)
巩固提升
def shengxiao(year):
#求生肖
zodiac=[“鼠”,“牛”,“虎”,“兔”,“龙”,“蛇”,“马”,“羊”,“猴”,“鸡”,“狗”,“猪”]
index=(year-1972)%12
return zodiac=[ index]
P45 扩展练习
请编写程序,实现输入一个农历年份(>=1900),输出该年对应的生肖,直到输入0结束,运行结果如图2.4.5所示。
#以下为主程序
myyear=int(input(“请输入农历年份,输出0结束:”))
while myyear!=0
print(“生肖是:”,shengxiao(myyear))
myyear=int(input(“请输入农历年份,输入0结束:”))
巩固提升
1.下列代码的输出结果是什么?( )
def sum(a,b):
c=a+b
return c
print(sum(4,5))
A.4 B.5 C.9 D.1
C
课堂小结
可以复用的代码
函数
系统函数,如
input()、print()
用户自定义函数
def function(参数)
语句或语句组
返回值
函数调用——通过函数名调用
共享代码的发布
模块的导入使用
import模块名称
num=int(input("请输入一个数:")) f=[6,2,5,5,4,5,6,3,7,6]
total=0
while (num>0):
x=num % 10 total=total+f[x] num=num//10
print(total)
# 输入一个自然数
# 0-9的数字分别需要多少根小棒
# 火柴棒总数变量赋初值
# 取num的个位数
# 所需火柴棒数累加
# 去掉num的个位

展开更多......

收起↑

资源预览