找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1552

积分

0

好友

223

主题
发表于 4 天前 | 查看: 10| 回复: 0

掌握Python函数是编程的基础,也是实现代码复用的核心。本练习题集涵盖了函数定义、参数传递、作用域、递归和高阶函数等关键知识点,帮助你系统检验对Python函数机制的理解。

一、单项选择题
  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 导入模块时不会执行任何代码,只建立引用

二、判断题
  1. 函数定义时的参数称为实际参数,调用时的参数称为形式参数。(  )
  2. 在函数中,return 语句可以返回多个值,这些值会被打包成元组。(  )
  3. lambda 函数可以包含多条语句和复杂的逻辑结构。(  )
  4. 在函数内部修改全局变量需要使用 global 关键字声明。(  )
  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

四、程序填充题
  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))  # 应输出True
    print(is_even(5))  # 应输出False
五、编程题
  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 的所有整数。
    主要变量N, primes, num

  3. 最大公约数与最小公倍数
    编写两个函数:
    gcd(a, b):计算两个整数的最大公约数(使用辗转相除法)。
    lcm(a, b):计算两个整数的最小公倍数(利用最大公约数)。
    要求
    (1) 最大公约数函数使用欧几里得算法(辗转相除法)。
    (2) 最小公倍数函数调用最大公约数函数:lcm = a * b / gcd(a, b)
    (3) 编写主程序测试这两个函数。
    主要变量a, b, result_gcd, result_lcm




上一篇:PostgreSQL向量数据生成实战:基于正态分布的高效测试数据构建与AI编程
下一篇:网络追踪技术深度解析:从浏览器指纹到跨设备追踪的隐私防护策略
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 20:52 , Processed in 0.262458 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表