第9课 函数基础——把代码打包起来课后练习--小学信息科技Python程序设计

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

第9课 函数基础——把代码打包起来课后练习--小学信息科技Python程序设计

资源简介

/ 让教学更有效 精品试卷 | 信息
第9课 课后练习
(答案版 · 教师用)
班级:____________ 姓名:____________ 得分:__________
一、填空(每空 3 分,共 24 分)
1.定义函数使用的关键字是 ______________。
2.函数定义中括号里的变量叫 ______________;调用时括号里填的具体值叫 ______________。
3.函数要把结果交给调用它的地方,应该用 ______________ 语句。
4.def add(a, b): 定义了一个函数,把它用 3 和 5 调用,写法是 ____________。
5.函数体内 return 语句执行后,函数会 ______________(继续执行 / 立即结束)。
6.如果想在屏幕上显示某个值,用 ______________;如果想把这个值留给后面的代码继续算,用 ______________。
二、判断对错(每题 3 分,共 12 分)
1.只要写了 def,函数体就会自动执行。(  )
2.函数可以没有参数,也可以没有返回值。(  )
3.print(a + b) 和 return a + b 可以互相替换,效果一样。(  )
4.一个函数里可以有多个 return 语句。(  )
三、★ 改错题(每题 8 分,共 24 分)
第 1 题 下面的程序想问候两位同学,但没有输出。请找出错误并改正。
def greet(name):
print("你好," + name)
greet
错误:______________________________________________________________
______________________________________________________________
______________________________________________________________
第 2 题 下面程序想用返回值参与运算,却报了错。
def add(a, b):
print(a + b)
s = add(3, 5)
print(s * 2)
错误原因:__________________________________________________________
______________________________________________________________
______________________________________________________________
改正方法:__________________________________________________________
______________________________________________________________
______________________________________________________________
第 3 题 下面函数想返回两个数中的较大者,结果不对。
def bigger(a, b):
if a > b:
return a
return b
print(bigger(8, 3) + bigger(2, 9))
程序输出:______________。这是对的吗?(是 / 不是)__________
如果把最后一行的加法改成 print(bigger(8, 3), bigger(2, 9)),输出是什么?
______________________________________________________________
______________________________________________________________
四、★★ 提高题(每题 10 分,共 30 分)
第 1 题 把重复代码改成函数
下面是一段重复了三次的代码,请把它改写成「定义一个函数 + 调用三次」的形式。
r = 3
print(f"面积是 {3.14 * r * r:.2f}")
r = 5
print(f"面积是 {3.14 * r * r:.2f}")
r = 8
print(f"面积是 {3.14 * r * r:.2f}")
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
第 2 题 读程序写结果
def f(x):
x = x + 10
return x
a = 5
b = f(a)
print(a)
print(b)
输出结果:第一行 ____________,第二行 ____________。
想一想:为什么 a 没有被改变?这说明函数里的参数和外面的变量是什么关系?
______________________________________________________________
______________________________________________________________
______________________________________________________________
第 3 题 三个数的最大值(一题多解)
写一个函数 max3(a, b, c),返回三个数中的最大值。请写出两种不同的实现思路,并说明哪种更好理解。
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
五、★★★ 挑战题(每题 12 分,共 24 分)
第 1 题 素数判断函数
写一个函数 is_prime(n),判断 n 是否为素数(只能被 1 和自身整除的大于 1 的数),再用它输出 2~100 之间的所有素数,每行输出 5 个。
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
自测数据:2、3、5、7 是素数;1 不是素数;9 不是素数;97 是素数。
第 2 题 成绩等级函数
写一个函数 grade(score),根据分数返回等级:90 及以上返回 "A",80~89 返回 "B",60~79 返回 "C",60 以下返回 "D"。再用它处理一个成绩列表 [95, 82, 67, 58, 100, 73],输出每个分数和对应等级。
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
教师评语:
__________________________________________________________________
__________________________________________________________________
第 9 课 参考答案(教师用)
与《教师参考答案》册同源,全部数值均已实际运行核验
一、填空
1.def 2.形参、实参 3.return 4.add(3, 5) 5.立即结束 6.print、return
二、判断对错
1.×(def 只是定义,必须再调用才会执行) 2.√ 3.×(print 只是显示,不能参与后续运算) 4.√
三、★ 改错题
第 1 题:最后一行写的是 greet,少了一对括号。调用函数必须加括号,应改为 greet("小明")。
第 2 题:add 函数里用的是 print,没有 return,所以 s 是 None,s * 2 报类型错误。应把 print(a + b) 改成 return a + b。
第 3 题:程序输出 8 + 9 = 17。这是对的。改成 print(bigger(8, 3), bigger(2, 9)) 后输出 8 9。
四、★★ 提高题
第 1 题:
def area(r):
return f"面积是 {3.14 * r * r:.2f}"
print(area(3))
print(area(5))
print(area(8))
第 2 题:第一行输出 5,第二行输出 15。因为 a 是外部变量,传给函数的只是它的值(副本),函数里 x = x + 10 改的是函数内部的 x,外部的 a 不受影响。这说明函数的参数是「按值传递」的,函数内部改不了外面变量的值。
第 3 题:思路① 两两比较(bigger(bigger(a,b), c));思路② 用 max(a, b, c) 一行完成。思路②更简洁,但思路①能体现比较的过程,更能说明「为什么它最大」。
五、★★★ 挑战题
第 1 题:
def is_prime(n):
if n < 2:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
count = 0
for x in range(2, 101):
if is_prime(x):
print(f"{x:4d}", end="")
count += 1
if count % 5 == 0:
print()
第 2 题:
def grade(score):
if score >= 90:
return "A"
elif score >= 80:
return "B"
elif score >= 60:
return "C"
else:
return "D"
for s in [95, 82, 67, 58, 100, 73]:
print(f"{s} → {grade(s)}")
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
21世纪教育网(www.21cnjy.com)/ 让教学更有效 精品试卷 | 信息
第9课 课后练习
(学生用)
班级:____________ 姓名:____________ 得分:__________
一、填空(每空 3 分,共 24 分)
1.定义函数使用的关键字是 ______________。
2.函数定义中括号里的变量叫 ______________;调用时括号里填的具体值叫 ______________。
3.函数要把结果交给调用它的地方,应该用 ______________ 语句。
4.def add(a, b): 定义了一个函数,把它用 3 和 5 调用,写法是 ____________。
5.函数体内 return 语句执行后,函数会 ______________(继续执行 / 立即结束)。
6.如果想在屏幕上显示某个值,用 ______________;如果想把这个值留给后面的代码继续算,用 ______________。
二、判断对错(每题 3 分,共 12 分)
1.只要写了 def,函数体就会自动执行。(  )
2.函数可以没有参数,也可以没有返回值。(  )
3.print(a + b) 和 return a + b 可以互相替换,效果一样。(  )
4.一个函数里可以有多个 return 语句。(  )
三、★ 改错题(每题 8 分,共 24 分)
第 1 题 下面的程序想问候两位同学,但没有输出。请找出错误并改正。
def greet(name):
print("你好," + name)
greet
错误:______________________________________________________________
______________________________________________________________
______________________________________________________________
第 2 题 下面程序想用返回值参与运算,却报了错。
def add(a, b):
print(a + b)
s = add(3, 5)
print(s * 2)
错误原因:__________________________________________________________
______________________________________________________________
______________________________________________________________
改正方法:__________________________________________________________
______________________________________________________________
______________________________________________________________
第 3 题 下面函数想返回两个数中的较大者,结果不对。
def bigger(a, b):
if a > b:
return a
return b
print(bigger(8, 3) + bigger(2, 9))
程序输出:______________。这是对的吗?(是 / 不是)__________
如果把最后一行的加法改成 print(bigger(8, 3), bigger(2, 9)),输出是什么?
______________________________________________________________
______________________________________________________________
四、★★ 提高题(每题 10 分,共 30 分)
第 1 题 把重复代码改成函数
下面是一段重复了三次的代码,请把它改写成「定义一个函数 + 调用三次」的形式。
r = 3
print(f"面积是 {3.14 * r * r:.2f}")
r = 5
print(f"面积是 {3.14 * r * r:.2f}")
r = 8
print(f"面积是 {3.14 * r * r:.2f}")
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
第 2 题 读程序写结果
def f(x):
x = x + 10
return x
a = 5
b = f(a)
print(a)
print(b)
输出结果:第一行 ____________,第二行 ____________。
想一想:为什么 a 没有被改变?这说明函数里的参数和外面的变量是什么关系?
______________________________________________________________
______________________________________________________________
______________________________________________________________
第 3 题 三个数的最大值(一题多解)
写一个函数 max3(a, b, c),返回三个数中的最大值。请写出两种不同的实现思路,并说明哪种更好理解。
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
五、★★★ 挑战题(每题 12 分,共 24 分)
第 1 题 素数判断函数
写一个函数 is_prime(n),判断 n 是否为素数(只能被 1 和自身整除的大于 1 的数),再用它输出 2~100 之间的所有素数,每行输出 5 个。
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
自测数据:2、3、5、7 是素数;1 不是素数;9 不是素数;97 是素数。
第 2 题 成绩等级函数
写一个函数 grade(score),根据分数返回等级:90 及以上返回 "A",80~89 返回 "B",60~79 返回 "C",60 以下返回 "D"。再用它处理一个成绩列表 [95, 82, 67, 58, 100, 73],输出每个分数和对应等级。
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
教师评语:
__________________________________________________________________
__________________________________________________________________
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
21世纪教育网(www.21cnjy.com)

展开更多......

收起↑

资源列表