在Python编程的世界里,无论是新手还是老手,面试都是一个挑战。掌握一定的实战题目,不仅可以加深对Python的理解,还能在面试中游刃有余。本文将为你精选一系列Python编程实战题目,涵盖基础到进阶,帮助你解锁面试难题。
基础题目
1. 列表推导式
题目描述: 使用列表推导式生成一个包含1到100之间所有偶数的列表。
even_numbers = [x for x in range(1, 101) if x % 2 == 0]
2. 字典推导式
题目描述: 根据一个字符串,使用字典推导式创建一个字符频率统计。
text = "hello world"
char_frequency = {char: text.count(char) for char in set(text)}
3. 生成器表达式
题目描述: 使用生成器表达式计算斐波那契数列的前10个数。
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
fibonacci_gen = (x for x in fibonacci(10))
for _ in range(10):
print(next(fibonacci_gen))
中级题目
4. 闭包
题目描述: 创建一个计数器闭包,使得每次调用get_count()时返回当前的计数。
def counter():
count = 0
def get_count():
nonlocal count
return count
return get_count
my_counter = counter()
print(my_counter()) # 输出0
my_counter() # 输出1
5. 高阶函数
题目描述: 使用高阶函数map()和filter()来筛选并转换一个列表。
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
高级题目
6. 装饰器
题目描述: 创建一个装饰器,用来打印函数执行前后的时间差。
import time
def timing_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"{func.__name__} took {end_time - start_time} seconds to execute.")
return result
return wrapper
@timing_decorator
def long_computation():
time.sleep(2)
7. 异常处理
题目描述: 使用try-except块来处理可能出现的异常。
def divide(a, b):
try:
return a / b
except ZeroDivisionError:
return "Cannot divide by zero"
print(divide(10, 0)) # 输出Cannot divide by zero
通过这些实战题目,你可以巩固Python编程的基础知识,提高面试成功率。不断地练习和挑战自己,相信你会在Python的道路上越走越远。
