Python函数进阶:15道经典考题及详解22


Python函数是构建强大和可重用代码的核心。熟练掌握函数的使用、设计和优化是Python编程的关键技能。本文将通过15道不同难度的Python函数考题,逐步提升你的函数编程能力,并附带详细的解答和代码示例。这些题目涵盖了函数的定义、参数传递、作用域、递归、高阶函数、装饰器等多个方面。

一、基础题 (1-5题)

1. 编写一个函数,计算两个数的和。
def add(x, y):
"""计算两个数的和。"""
return x + y
print(add(5, 3)) # 输出:8

2. 编写一个函数,判断一个数是否为偶数。
def is_even(num):
"""判断一个数是否为偶数。"""
return num % 2 == 0
print(is_even(4)) # 输出:True
print(is_even(7)) # 输出:False

3. 编写一个函数,计算一个列表中所有数字的平均值。
def calculate_average(numbers):
"""计算一个列表中所有数字的平均值。"""
if not numbers:
return 0 # 处理空列表的情况
return sum(numbers) / len(numbers)
print(calculate_average([1, 2, 3, 4, 5])) # 输出:3.0

4. 编写一个函数,将一个字符串反转。
def reverse_string(s):
"""将一个字符串反转。"""
return s[::-1]
print(reverse_string("hello")) # 输出:olleh

5. 编写一个函数,查找列表中最大值和最小值。
def find_min_max(numbers):
"""查找列表中最大值和最小值。"""
if not numbers:
return None, None
return min(numbers), max(numbers)
min_val, max_val = find_min_max([1, 5, 2, 8, 3])
print(f"最小值:{min_val}, 最大值:{max_val}") # 输出:最小值:1, 最大值:8


二、进阶题 (6-10题)

6. 编写一个函数,实现斐波那契数列的迭代计算。
def fibonacci_iterative(n):
"""迭代计算斐波那契数列的第n个数。"""
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
print(fibonacci_iterative(10)) # 输出:55

7. 编写一个函数,实现斐波那契数列的递归计算。
def fibonacci_recursive(n):
"""递归计算斐波那契数列的第n个数。"""
if n 5 and x % 2 == 0, numbers))
print(filtered_numbers) # 输出:[6, 8, 10]

12. 编写一个函数,使用装饰器来计算函数的执行时间。
import time
def timeit(func):
def wrapper(*args, kwargs):
start_time = ()
result = func(*args, kwargs)
end_time = ()
print(f"函数 {func.__name__} 执行时间:{end_time - start_time:.4f} 秒")
return result
return wrapper
@timeit
def slow_function():
(1)
return "Done!"
slow_function()

13. 编写一个函数,实现一个简单的缓存机制,避免重复计算。
cache = {}
def cached_function(func):
def wrapper(*args):
if args in cache:
return cache[args]
result = func(*args)
cache[args] = result
return result
return wrapper
@cached_function
def expensive_function(n):
print(f"计算 {n} 的阶乘...")
# 模拟耗时计算
(1)
if n == 0:
return 1
else:
return n * expensive_function(n-1)
print(expensive_function(5))
print(expensive_function(5)) # 这次从缓存中获取

14. 编写一个函数,处理一个可能包含异常的文件读取操作。
def read_file_safely(filename):
try:
with open(filename, 'r') as f:
return ()
except FileNotFoundError:
return "文件不存在"
except Exception as e:
return f"读取文件出错: {e}"
print(read_file_safely(""))

15. 编写一个函数,接受一个可迭代对象作为参数,并返回其所有元素的类型。
def get_element_types(iterable):
return {type(item) for item in iterable}
print(get_element_types([1, "hello", 3.14, True])) # 输出:{, , , }

希望通过这些题目,能够帮助你更好地理解和掌握Python函数的各种用法和技巧。 记住,练习是关键! 尝试修改这些题目,或者自己设计一些新的题目来挑战自己。

2025-05-24


上一篇:Python 中 Point 对象的创建、操作及应用

下一篇:Python构建Doc文档:从入门到进阶指南