Python 函数使用举例:从基础到进阶

📅 2026/7/10 21:40:34
Python 函数使用举例:从基础到进阶
1. 函数基础定义与调用函数是 Python 编程的核心用于封装可重用的代码块。使用def关键字定义函数。# 定义一个简单的函数 def greet(name): 向指定的人打招呼 return fHello, {name}! #调用函数 message greet(Alice) print(message) # 输出Hello, Alice!2. 参数传递位置参数、关键字参数与默认参数Python 函数支持多种参数传递方式让函数调用更加灵活。def describe_pet(pet_name, animal_typedog): 描述宠物信息animal_type有默认值 print(fI have a {animal_type} named {pet_name}.) #位置参数 describe_pet(Buddy, dog) # I have a dog named Buddy. #关键字参数顺序无关 describe_pet(animal_typecat, pet_nameWhiskers) # I have a cat named Whiskers. #使用默认参数 describe_pet(Max) # I have a dog named Max.3. 返回值单值与多值返回函数使用return语句返回值。Python 支持返回多个值实际上是返回一个元组。def calculate_stats(numbers): 计算列表的平均值和最大值 if not numbers: return None, None # 返回两个 None avg sum(numbers) / len(numbers) maximum max(numbers) return avg, maximum # 返回一个元组 #调用并解包返回值 scores [85, 92, 78, 90, 88] average, max_score calculate_stats(scores) print(f平均分{average:.2f}, 最高分{max_score})4. 可变参数*args 与 **kwargs当函数参数数量不确定时可以使用*args接收任意数量的位置参数**kwargs接收任意数量的关键字参数。def make_pizza(size, *toppings, **details): 制作披萨接受可变数量的配料和详细信息 print(f制作一个 {size} 寸的披萨) print(配料) for topping in toppings: print(f- {topping}) if details: print(额外信息) for key, value in details.items(): print(f {key}: {value}) #调用示例 make_pizza(12, 蘑菇, 香肠, 芝士, deliveryTrue, special_request多加芝士)5. Lambda 函数匿名函数Lambda 函数是简洁的单行函数常用于需要函数对象的地方。# 普通函数定义 def square(x): return x ** 2 #等效的 lambda 函数 square_lambda lambda x: x ** 2 #使用示例 numbers [1, 2, 3, 4, 5] #使用 lambda 配合 map squared list(map(lambda x: x ** 2, numbers)) print(squared) # [1, 4, 9, 16, 25] #使用 lambda 配合 sorted按字符串长度排序 words [apple, banana, cherry, date] sorted_words sorted(words, keylambda word: len(word)) print(sorted_words) # [date, apple, cherry, banana]6. 装饰器增强函数功能装饰器是 Python 的高级特性用于在不修改原函数代码的情况下增强函数功能。import time def timer_decorator(func): 计时装饰器测量函数执行时间 def wrapper(*args, **kwargs): start_time time.time() result func(*args, **kwargs) end_time time.time() print(f{func.name} 执行时间{end_time - start_time:.4f} 秒) return result return wrapper 使用装饰器 timer_decorator def slow_function(): 模拟耗时操作 time.sleep(1) return 任务完成 调用被装饰的函数 result slow_function() print(result)7. 生成器函数yield 关键字生成器函数使用yield关键字可以逐步产生值节省内存。def fibonacci_generator(n): 生成斐波那契数列的前 n 项 a, b 0, 1 count 0 while count n: yield a a, b b, a b count 1 使用生成器 print(斐波那契数列前10项) for num in fibonacci_generator(10): print(num, end ) 输出0 1 1 2 3 5 8 13 21 34 生成器表达式类似列表推导式 squares_gen (x**2 for x in range(5)) print(list(squares_gen)) # [0, 1, 4, 9, 16]8. 递归函数示例递归函数调用自身来解决问题常用于树形结构、分治算法等场景。def factorial(n): 计算阶乘递归实现 if n 0 or n 1: return 1 else: return n * factorial(n - 1) def fibonacci_recursive(n): 计算第 n 个斐波那契数递归实现 if n 1: return n return fibonacci_recursive(n-1) fibonacci_recursive(n-2) 使用示例 print(f5的阶乘{factorial(5)}) # 120 print(f第10个斐波那契数{fibonacci_recursive(10)}) # 559. 内置函数使用举例Python 提供了丰富的内置函数以下是一些常用示例# map()对可迭代对象应用函数 numbers [1, 2, 3, 4] doubled list(map(lambda x: x * 2, numbers)) print(doubled) # [2, 4, 6, 8] filter()过滤元素 even_numbers list(filter(lambda x: x % 2 0, numbers)) print(even_numbers) # [2, 4] zip()合并多个可迭代对象 names [Alice, Bob, Charlie] ages [25, 30, 35] for name, age in zip(names, ages): print(f{name} is {age} years old) enumerate()获取索引和值 for index, name in enumerate(names, start1): print(f{index}. {name})10. 实际应用数据处理函数结合多个函数概念创建一个实用的数据处理示例。def process_data(data, *processors, **options): 数据处理管道依次应用多个处理函数 参数 - data: 输入数据 - *processors: 处理函数列表 - **options: 配置选项 result data 应用每个处理函数 for processor in processors: result processor(result) 如果有输出选项打印结果 if options.get(verbose, False): print(f处理结果{result}) return result 定义几个处理函数 def to_uppercase(text): return text.upper() def remove_spaces(text): return text.replace( , ) def add_prefix(text, prefixPROCESSED_): return prefix text 使用数据处理管道 original_text hello world python processed process_data( original_text, to_uppercase, remove_spaces, lambda x: add_prefix(x, RESULT_), verboseTrue ) print(f最终结果{processed})总结Python 函数提供了强大的代码组织和复用能力。从简单的参数传递到高级的装饰器和生成器掌握这些函数使用技巧可以显著提升代码质量和开发效率。建议在实际项目中多练习这些模式根据具体需求选择合适的函数设计方式。