news 2026/6/2 11:46:43

思考与练习(第八章 函数与代码复用)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
思考与练习(第八章 函数与代码复用)

一、单项选择题(本大题共 10 小题)

1、关于 Python 函数的定义,以下说法正确的是:

① 函数定义时必须有参数

② 函数必须使用 return 语句返回值

③ 函数定义使用 def 关键字

④ 函数名不能与 Python 关键字相同,但可以与内置函数同名

2、以下函数调用会输出什么结果?

def test(a, b=2, c=3): return a + b + c print(test(1, c=4))

① 10

② 7

③ 程序出错

④ 6

3、关于函数参数,以下描述错误的是:

① 位置参数必须在关键字参数之前

② 默认参数必须放在非默认参数之后

③ *args 用于接收任意数量的位置参数

④ **kwargs 用于接收任意数量的关键字参数,但不能与位置参数混合使用

4、执行以下代码后,输出结果是:

x = 5 def change(): x = 10 print("函数内:", x) change()print("函数外:", x)

① 函数内:10 函数外:10

② 函数内:5 函数外:5

③ 函数内:10 函数外:5

④ 程序出错

5、以下关于递归函数的说法,正确的是:

① 递归函数必须包含 return 语句

② 递归函数必须有明确的终止条件

③ 递归函数比循环效率更高

④ Python 对递归深度没有限制

6、以下哪个选项是合法的 lambda 函数?

① lambda x: x**2

② lambda: return x*2

③ lambda x, y: x+y; print(result)

④ def lambda(x): return x+1

7、以下代码的输出结果是:

def func(n): if n == 0: return 1 else: return n * func(n-1) print(func(4))

① 24

② 10

③ 程序出错

④ 120

8、关于 Python 的作用域规则,以下说法正确的是:

① 函数内部可以访问和修改全局变量而无需特殊声明

② 使用 global 关键字可以在函数内部创建全局变量

③ 嵌套函数中,内部函数不能访问外部函数的局部变量

④ LEGB 原则中的 E 表示External(外部模块)

9、以下代码使用了哪个高阶函数?

numbers = [1, 2, 3, 4, 5]squares = list(map(lambda x: x**2, numbers))

① filter

② reduce

③ map

④ sorted

10、关于 Python 模块导入的说法,以下哪项是正确的?

① import 语句会重复加载同一个模块

② from module import * 只会导入模块中以单下划线 _ 开头的名称

③ 模块被首次导入时会执行该模块的顶层代码

④ import 导入模块时不会执行任何代码,只建立引用

二、判断题(本大题共 5 小题)

1、函数定义时的参数称为实际参数,调用时的参数称为形式参数。( )

2、在函数中,return 语句可以返回多个值,这些值会被打包成元组。( )

3、lambda 函数可以包含多条语句和复杂的逻辑结构。( )

4、在函数内部修改全局变量需要使用 global 关键字声明。( )

5、递归函数调用自身时,每次调用都会创建新的命名空间。( )

三、多项选择题(本大题共 5 小题)

1、以下哪些是 Python 中合法的函数定义?

① def func(): pass

② def func(a, b=1): return a+b

③ def func(*args, **kwargs): pass

④ def func(a, b, /, c, *, d): pass

2、关于函数返回值,以下哪些说法是正确的?

① 函数可以没有 return 语句,此时返回 None

② 函数可以返回多个值,实际上返回的是元组

③ return 语句执行后,函数立即结束

④ 一个函数只能有一个 return 语句

3、以下哪些情况会创建新的作用域?

① 函数定义

② 类定义

③ 模块导入

④ lambda 表达式

4、关于闭包,以下哪些描述是正确的?

① 闭包是函数和其相关引用环境的组合

② 闭包可以访问外部函数的局部变量

③ 闭包可以修改外部函数的局部变量

④ 所有嵌套函数都是闭包

5、以下哪些是 Python 内置的高阶函数?

① map

② filter

③ reduce

④ apply

四、程序填充题(本大题共 3 小题)

1、以下函数用于计算斐波那契数列的第 n 项。请在下划线处补全代码。

def fibonacci(n): if n <= 0: return 0 elif n == 1: return 1 else: return ________ + ________ # 测试print(fibonacci(6)) # 应输出8

2、以下函数使用递归计算 1 到 n 的和。请在下划线处补全代码。

def sum_to_n(n): if n <= 0: return 0 else: return ________ + ________ # 测试print(sum_to_n(5)) # 应输出15

3、以下函数用于判断一个数是否为偶数,使用 lambda 表达式实现。请在下划线处补全代码。

is_even = lambda x: ________# 测试print(is_even(4)) # 应输出Trueprint(is_even(5)) # 应输出False

五、编程题(本大题共 3 小题)

1、字符串字符统计函数

编写一个函数 count_characters(s),统计传入字符串中各类字符的数量。

要求:

(1)统计字符串中的数字、字母、空格、其他字符的数量

(2)返回一个包含四个计数的元组:(数字个数, 字母个数, 空格个数, 其他字符个数)

(3)使用 Python 字符串方法进行字符类型判断(如.isdigit(), .isalpha() 等)

编写主程序测试该函数

(4)主要变量:s, digit_count, letter_count, space_count, other_count

2、素数生成函数

编写一个函数 find_primes(N),找出小于正整数 N 的所有素数。

要求:

(1)使用 is_prime() 函数判断每个数是否为素数

(2)返回一个包含所有素数的列表

(3)编写主程序测试该函数,输出小于 100 的所有素数及其个数

(4)使用循环遍历 2 到 N-1 的所有整数

(5)主要变量:N, primes, num

3、最大公约数与最小公倍数

编写两个函数:

gcd(a, b):计算两个整数的最大公约数(使用辗转相除法)

lcm(a, b):计算两个整数的最小公倍数(利用最大公约数)

要求:

(1)最大公约数函数使用欧几里得算法(辗转相除法)

(2)最小公倍数函数调用最大公约数函数:lcm = a * b / gcd(a, b)

(3)编写主程序测试这两个函数

(4)主要变量:a, b, result_gcd, result_lcm

附:参考答案与解析

“点赞有美意,赞赏是鼓励”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 15:52:31

FaceFusion超分辨率增强模块评测:4K输出依然清晰

FaceFusion超分辨率增强模块评测&#xff1a;4K输出依然清晰 在影视后期、短视频创作乃至虚拟数字人日益普及的今天&#xff0c;AI驱动的人脸替换技术早已不再是实验室里的概念。但一个长期困扰从业者的难题始终存在&#xff1a;换完脸之后&#xff0c;画面变糊了怎么办&#x…

作者头像 李华
网站建设 2026/6/1 19:25:00

FaceFusion与Unity集成方案:为游戏添加AI换脸功能

FaceFusion与Unity集成方案&#xff1a;为游戏添加AI换脸功能 在如今的游戏开发中&#xff0c;玩家对“个性化”和“沉浸感”的要求越来越高。我们不再满足于选择预设的脸型或肤色——越来越多的人希望自己的脸能真正出现在游戏角色上&#xff0c;仿佛进入了一个属于自己的虚拟…

作者头像 李华
网站建设 2026/5/31 23:24:42

如何用Open-AutoGLM实现极致省电?(电池控制算法深度解析)

第一章&#xff1a;Open-AutoGLM 电池功耗控制算法概述Open-AutoGLM 是一种面向移动设备与边缘计算平台的智能电池功耗调控框架&#xff0c;结合动态电压频率调节&#xff08;DVFS&#xff09;、任务调度优化与机器学习预测模型&#xff0c;实现对系统能耗的精细化管理。该算法…

作者头像 李华
网站建设 2026/6/2 4:49:50

FaceFusion在心理学实验中的辅助角色探讨

FaceFusion在心理学实验中的辅助角色探讨 在当代心理学研究中&#xff0c;面孔作为社会信息的核心载体&#xff0c;承载着情绪、意图、可信度和人格判断等多重认知功能。然而长期以来&#xff0c;如何精准控制面部刺激材料的质量与变量&#xff0c;一直是困扰研究人员的难题。传…

作者头像 李华
网站建设 2026/6/2 14:11:31

前后台数据同步难题如何破?Open-AutoGLM协同机制给出答案

第一章&#xff1a;前后台数据同步难题如何破&#xff1f;Open-AutoGLM协同机制给出答案在现代Web应用开发中&#xff0c;前后台数据不一致问题长期困扰着开发者。传统轮询或WebSocket推送方案存在资源浪费、延迟高或实现复杂等问题。Open-AutoGLM协同机制通过智能感知与双向同…

作者头像 李华