news 2026/9/17 8:14:40

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

作者头像

张小明

前端开发工程师

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/9/18 0:02:12

别“洗稿”了,试试“思维重构”:宏智树AI让论文自己“长”出来

“传统的同义词替换已经救不了我的论文了。”一位计算机博士生发现&#xff0c;简单的改写后&#xff0c;他的论文AIGC率不降反增&#xff0c;直到使用了思维逻辑重构功能。 01 降重困境&#xff1a;传统方法为何失灵&#xff1f; 在学术审核日益严格的时代&#xff0c;高校不…

作者头像 李华
网站建设 2026/9/17 14:28:51

Material Intro:为你的Android应用打造惊艳开场白

Material Intro&#xff1a;为你的Android应用打造惊艳开场白 【免费下载链接】material-intro A simple material design app intro with cool animations and a fluent API. 项目地址: https://gitcode.com/gh_mirrors/ma/material-intro 还记得第一次打开某个应用时&…

作者头像 李华
网站建设 2026/9/17 14:48:01

【Open-AutoGLM启动报错排查指南】:20年专家亲授5大高频故障修复方案

第一章&#xff1a;Open-AutoGLM启动报错排查概述在部署和运行 Open-AutoGLM 框架时&#xff0c;开发者常遇到服务无法正常启动的问题。这些问题可能源于环境依赖缺失、配置文件错误或资源限制等多种因素。本章聚焦于常见启动阶段的异常现象&#xff0c;提供系统性排查思路与解…

作者头像 李华
网站建设 2026/9/17 15:46:37

FaceFusion GPU利用率监控方法:确保资源高效利用

FaceFusion GPU利用率监控方法&#xff1a;确保资源高效利用 在深度学习驱动的视觉应用日益普及的今天&#xff0c;人脸替换技术正从实验室走向影视、社交、虚拟偶像等真实场景。FaceFusion 作为当前最受欢迎的开源换脸工具之一&#xff0c;凭借其高保真度与模块化设计赢得了广…

作者头像 李华
网站建设 2026/9/17 22:32:12

Open-AutoGLM部署性能翻倍秘籍:从内存对齐到缓存复用的6大优化实践

第一章&#xff1a;Open-AutoGLM内存优化的底层逻辑在大规模语言模型推理过程中&#xff0c;内存占用是制约性能与部署效率的核心瓶颈。Open-AutoGLM通过重构计算图调度与显存管理机制&#xff0c;在不牺牲模型精度的前提下显著降低运行时内存消耗。动态张量生命周期管理 传统框…

作者头像 李华
网站建设 2026/9/17 9:35:33

基于YOLOv8/YOLOv10/YOLOv11/YOLOv12与SpringBoot的前后端分离昆虫识别检测系统(DeepSeek智能分析+web交互界面)

一、 系统引言 随着精准农业和智慧植保的快速发展&#xff0c;利用计算机视觉技术对农作物病虫害进行快速、准确的识别与监测&#xff0c;已成为现代农业信息化的重要研究方向。昆虫作为影响农作物健康生长的关键生物因子&#xff0c;其早期发现与种类鉴定对于有效实施防治措施…

作者头像 李华