内容正文:
化繁为简,赋能思维
自定义函数的深度复习与实战
2025年10月14日
明德:赵 斌
情境导入
经典问题呈现
出示经典“火柴棒摆数字”问题(源于教材的变式):“用6根火柴棒能摆出多少个不同的自然数?”
数字拆解:[6,2,5,5,4,5,6,3,7,6]
寻找范围:最小数(0),最大数(111)
循环枚举:判断当前数需要的火柴棒
思考:在这个解答思路中,哪个部分会被重复使用?
如果用到6根则输出当前数
概念深化
构建思维模型
构建“自定义函数思维模型图”,明确函数本质是“功能黑匣子”
包含输入(参数)、处理(函数体)、输出(返回值)。
总结使用理由
代码复用,减少冗余;逻辑清晰,易于阅读;分工协作,便于调试。
def match_num(num):
f=[6,2,5,5,4,5,6,3,7,6]
if num==0:
total=f[0]
else:
total=0
while(num>0):
x=num%10
# 取num除以10的余数,即num的个位数
total=total+f[×]
# 所需火柴棒数累加
num=num//10
# num整除10,即去掉num的个位数
return total
# 返回需要多少根火柴棒数
输入
处理
输出
案例精讲
01
素数函数设计
以判断素数的函数为例,分析判断一个数n是否为素数的功能是独立可复用的,定义函数is_prime(n),输入整数n,返回布尔值。
判断素数自定义函数
def is_prime(n):
i=2
if n<i:
flag=False
return flag
else:
flag=True
while i<n:
if n%i==0:
flag=False
return flag
i+=1
return True
案例精讲
02
函数实现调用
展示如何利用该函数解决“输出范围内所有素数”或“验证哥德巴赫猜想”等更复杂的问题。
输出范围1-100内所有素数:
for i in range(①,②):
if is_prime(③):
print(i)
验证哥德巴赫猜想:任意一个大于等于4的偶数总可以分解为两个素数之和。
n=int(input("输入一个大于等于4的偶数:"))
for i in range(2,①):
if is_prime(②) and is_prime(n-i):
print(n,"=",i,"+",③)
案例精讲
03
学考变式训练1
自定义函数主体变更为for循环实现。
(1)素数也叫质数,是除了1和它自身没有其它因数的自然数。
(2)根据数学原理,判断一个数n是否为素数只要判断2到n-1之间是否存在n的因数。
请填空完善该程序,实现功能:求1000到2000之间的素数。
def isPrime(n):
# 判断n是否为素数,是返回True,否则返回False
if n <= 1: # 小于等于1的数不是素数
return False
for i in range(2,①): # i的范围2到n-1
if ②: # 如果i是n的因数,则返回False
return False
return True
for x in range(1000,③):
if ④: # 调用函数进行判断x是否为素数
print(x)
案例精讲
03
学考变式训练2
阅读程序,说出运行结果。
阅读下列程序,写出运行结果
ls=[23,45,67,87]
def is_prime(n):
for i in range(2,n):
if n%i==0:
return False
return True
sum=0
for x in ls:
if is_prime(x):
sum=sum+x
print(sum)
案例精讲
04
def is_prime(n):
# 素数返回True,否则返回False
if n <= 1: # 小于等于1的数不是素数
return False
for i in range(2,①):#范围2到n-1
if ②: #i是n的因数,则返回False
return False
return True def is_palindrome(n):
# 回文返回True,否则返回False
if str(n)==str(n)[::-1]:
return True
else:
return ③
if __name__ == '__main__':
for i in range(①,②):
if is_prime(③) and is_palindrome(i):
print(i)
实战演练
“函数魔方”挑战。提供一组基础函数(如is_prime(n), is_palindrome(n)判断回文数)和一段主程序框架。补充程序,使之能输出10-200之间的回文素数。
总结提升
01
回顾函数流程
师生共同回顾“自定义判断素数函数的流程图”,再次强调“分解”与“抽象”的思想。
02
总结考查方式
总结函数在学考中的常见考查方式,如程序填空、代码补全、程序阅读和结果分析等题型。
03
明确应对策略
针对不同考查方式,明确学生应对学考中自定义函数相关题目的策略。
$