2.4 可以复用的代码 第一课时 课件(共18张PPT)教科版(2019)必修1

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

2.4 可以复用的代码 第一课时 课件(共18张PPT)教科版(2019)必修1

资源简介

(共18张PPT)
——可 以 复 用 的 代 码
火 柴 棒 摆 数 字
课前预习
3分钟时间预习课本P40-P43,完成以下题目
知识点检测
1.用火柴棒,摆出下面的自然数。 下列说法正确的是( )
A、可以用6根火柴棒摆放出0、9、13 B、可以用6根火柴棒摆放出0、8C、6根火柴棒能摆放的最大数是111 D、可以用6根火柴棒摆放出0、6、5
C
课前预习
3分钟时间预习课本P40-P43,完成以下题目
知识点检测
2. Python中创建自定义函数的语法规范是(   )。
A.def 函数名([参数列表]): B.sub 函数名([参数列表]):
C.del 函数名([参数列表]): D.define 函数名([参数列表]):
A
教 学
目 标
了解函数的作用。
通过摆放火柴棒问题,掌握函数的定义和调用方法。
火柴棒摆数字

有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
问 题
6根火柴棒能摆出的一位数:
6 2 5 5 4 5 6 3 7 6
6根火柴棒能摆出的二位数:
6根火柴棒能摆出的三位数:
0,6,9
14,41,77
111
火柴棒摆数字

1.算法分析
计算自然数num需要多少根火柴棒,可以分别计算num中各个数位需要多少根火柴,然后将各数位对应的火柴棒根数进行累加。
1
0
3
如何计算自然数num需要多少根火柴棒?
103

2 6 5
13
火柴棒摆数字

2.用流程图表示
将num除以10取余,求得个位数; 然后将num除以10取整,去掉个位数。重复步骤 直到num为0。显然可用while循环。
如何获得num各数位的值?
①num=103

num%10= 3

num=num//10
②num=10

num%10= 0

num=num//10
③num=1

num%10= 1

num=num//10
火柴棒摆数字

num = int(input("请输入一个数"))
f = [6, 2, 5, 5, 4, 5, 6, 3, 7, 6] # 0-9的数字分别需要多少根小棒
if num == 0: # 火柴棒总数变量赋初值
total = ①
else:
total=0 # 火柴棒总数变量赋初值
while (num>0):
x=② # 取num除以10的余数,即num的个位数
total = total+f[x] # 所需火柴棒数累加
num=③ # num整除10,即去掉num的个位
print(total)
单个数字0~9需要的火柴棒根数可预先存储到列表f中。
3.编程实现
火柴棒摆数字

num = int(input("请输入一个数"))
f = [6, 2, 5, 5, 4, 5, 6, 3, 7, 6]
if num == 0:
total = 6
else:
total=0
while (num>0):
x=num%10
total = total+f[x]
num=num//10
print(total)
①num==103 >0
x=103%10 ==>3 total=0+5 ==>5 num=103//10 ==》10
②num==10 >0
x=10%10 ==>0 total=5+6 ==>11 num=10//10 ==》1
③num==1 >0
x=1%10 ==>1 total=11+2 ==>13 num=1//10 ==》0
④num==0 ==》不执行循环
过程解析:
num==103
根据以上分析,对每一个自然数进行火柴棒个数的统计需要重复使用,因此可以设计函数优化代码。
函数

def 函数名(形式参数)
语句或语句组
return 返回值
函数分类:系统函数和用户自定义函数.
自定义函数:函数一般包括函数名、参数、返回值和函数体4部分。其中函数名和函数体是必不可少的,参数和返回值可根据需要进行定义。
标准格式
变量=函数名(实际参数)
调 用
函数体
函数调用
返 回 值
函数

1.以下程序的执行结果为:
知识点检测
函 数
主程序
先执行主程序
只有调用函数的时候才能执行函数部分
用函数编程实现火柴棒摆数字

def match_num(num):
f=[6,2,5,5,4,5,6,3,7,6] # 0~9的数字分别需要多少根小棒
if num==0:
total=6
else:
total=0 # 火柴棒总数变量赋初值
while (num>0):
x=num % 10 # 取num除以10的余数,即num的个位数
total=total+f[x] # 所需火柴棒数累加
num=num//10 #num整除10,即去掉num的个位数
return total #返回需要多少根火柴棒数

从0到111依次判断这些数是不是恰巧需要6根火柴棒
snum=6 #6根火柴棒
print("你可以拼出这些数字:")
for i in range( ① ):
if match_num(② ) ==snum: #如果i需要的火柴棒数等于现有火柴棒数
print(i)
用函数编程实现火柴棒摆数字

for i in range( 112):
if match_num(i) ==snum:
print(i)
用函数编程实现火柴棒摆数字
①i=0
match_num(0)==>6 ==> 打印0
②i=1
match_num(1)==>2 ==> 不打印
③i=2
match_num(2)==>5 ==> 不打印
……
i=111
match_num(111)==>6 ==> 打印
过程解析:
def match_num(num):
f=[6,2,5,5,4,5,6,3,7,6]
if num==0:
total=6
else:
total=0
while (num>0):
x=num % 10
total=total+f[x]
num=num//10
return total
课堂小练
练习1
def shengxiao(year):
zodiac=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]
index=(year-1900)%12
return zodiac[___①___]
myyear=int(input("请输入出生年份,输入0结束:"))
while myyear != ___②___:
print("你的生肖是:", ___③___) # 输出结果
myyear = int(input("请输入出生年份,输入0结束:"))
输入年份,输出该年对应的生肖
课堂小结
课 后 巩 固
2.以下程序语句输出结果为:( )
def factorial(n):
#求n!
s=1
for i in range(2,n+1):
s=s*i
return s
#调用factorial函数
total=factorial(4)
print(total)
A、10 B、6 C、24 D、12
C
1.函数定义中,函数名、参数、返回值和函数体四个部分,哪些是必不可少的?( )
A、函数名、返回值 B、参数、返回值
C、函数体与返回值 D、函数名、函数体
D
THE END

展开更多......

收起↑

资源预览