news 2026/4/23 13:19:58

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

作者头像

张小明

前端开发工程师

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/4/23 13:17:52

学术智造的秘密武器:宏智树AI如何让期刊论文创作实现智能跃迁

深夜的实验室&#xff0c;一位博士生盯着屏幕上的空白演示文稿许久&#xff0c;光标在“标题页”的占位符后不知疲倦地闪烁。他刚完成了长达三个月的实验&#xff0c;手上有一沓数据、几十篇参考文献和清晰的结论&#xff0c;但将这些复杂的研究成果整理成一份能在十分钟内说明…

作者头像 李华
网站建设 2026/4/19 0:41:15

Open-AutoGLM适配难题应对策略(专家级故障排除指南)

第一章&#xff1a;Open-AutoGLM 应用适配失败解决方案在部署 Open-AutoGLM 模型时&#xff0c;开发者常遇到应用适配失败的问题&#xff0c;主要表现为模型加载异常、API 接口调用超时或参数不兼容。此类问题通常源于环境依赖冲突、配置文件错误或版本不匹配。检查运行环境与依…

作者头像 李华
网站建设 2026/4/22 19:37:06

【稀缺技术曝光】:Open-AutoGLM流式推理与分片加载实现超低内存运行

第一章&#xff1a;Open-AutoGLM内存优化技术概述在大规模语言模型训练与推理过程中&#xff0c;显存资源往往成为性能瓶颈。Open-AutoGLM 作为面向 AutoGLM 架构的开源实现&#xff0c;集成了多种先进的内存优化技术&#xff0c;旨在降低 GPU 显存占用的同时保持计算效率。这些…

作者头像 李华
网站建设 2026/4/16 10:44:23

FaceFusion与Airtable协作:项目进度可视化跟踪

FaceFusion与Airtable协作&#xff1a;项目进度可视化跟踪 在影视后期、短视频工厂和虚拟内容创作的日常中&#xff0c;一个看似简单却令人头疼的问题反复出现&#xff1a;如何清晰地知道“哪一段视频已经换过脸&#xff1f;谁审核了&#xff1f;输出在哪&#xff1f;” 尤其…

作者头像 李华