Python教程29:函数与模块总结

Python教程29:函数与模块总结 “温故而知新,可以为师矣。” 经过前面13课的学习(第17-28课),我们系统学习了Python的函数、模块、异常处理等核心概念。今天我们回顾总结,梳理知识体系,巩固所学内容。 1. 函数基础回顾 核心概念 函数的作用: 代码复用:写一次,用多次 模块化:分解复杂问题 抽象:隐藏实现细节 可读性:函数名即文档 关键知识点 1# 基本结构 2def function_name(parameters): 3 """文档字符串""" 4 # 函数体 5 return result 6 7# 参数类型 8def func(a, b=默认值, *args, **kwargs): 9 """ 10 a: 位置参数 11 b: 默认参数 12 *args: 可变位置参数(元组) 13 **kwargs: 可变关键字参数(字典) 14 """ 15 pass 16 17# 返回值 18def multi_return(): 19 return value1, value2 # 实际返回元组 20 21# 函数是一等公民 22def outer(func): 23 return func # 可以作为参数和返回值 回顾第17课:函数基础(定义、参数、返回值、作用域) 2. Lambda与高阶函数 Lambda表达式 1# 匿名函数 2square = lambda x: x ** 2 3 4# 适用场景:简单、临时、作为参数 5sorted(students, key=lambda x: x["score"]) 高阶函数 1# map - 映射 2squares = map(lambda x: x**2, numbers) 3 4# filter - 过滤 5evens = filter(lambda x: x % 2 == 0, numbers) 6 7# reduce - 累积(需要从functools导入) 8from functools import reduce 9total = reduce(lambda x, y: x + y, numbers) 何时用Lambda vs普通函数: ...

2025-02-16 · 5 min · 904 words · 老墨

Python教程19:装饰器入门

Python教程19:装饰器入门 “简洁的力量在于抽象的恰当。” 装饰器是Python最强大的特性之一,也是初学者觉得最"神秘"的部分。今天我们从基础开始,逐步揭开装饰器的面纱,理解它的本质和应用。 1. 什么是装饰器 问题场景 假设你有多个函数,需要在每个函数执行前后记录日志: 1def add(a, b): 2 print("函数开始执行") # 重复代码 3 result = a + b 4 print("函数执行完毕") # 重复代码 5 return result 6 7def multiply(a, b): 8 print("函数开始执行") # 重复代码 9 result = a * b 10 print("函数执行完毕") # 重复代码 11 return result 问题:每个函数都要写重复的日志代码,违反了DRY(Don’t Repeat Yourself)原则。 装饰器的解决方案 装饰器是一种设计模式,用于在不修改原函数代码的情况下,给函数添加新功能。就像给礼物包装一样,外面包了一层,但礼物本身没变。 1@log_decorator # 这就是装饰器 2def add(a, b): 3 return a + b 4 5# 调用时自动有日志功能 6add(3, 5) 7# 输出: 8# 函数开始执行 9# 8 10# 函数执行完毕 2. 理解装饰器的基础:闭包 在学习装饰器前,需要先理解闭包(Closure)。 什么是闭包 闭包是指:一个函数内部定义的函数,可以访问外部函数的变量。 1def outer(x): 2 # x是外部函数的变量 3 4 def inner(y): 5 # inner可以访问outer的变量x 6 return x + y 7 8 return inner # 返回内部函数 9 10# 创建闭包 11add_5 = outer(5) 12print(add_5(3)) # 8(3 + 5) 13print(add_5(10)) # 15(10 + 5) 关键点: ...

2024-08-16 · 4 min · 775 words · 老墨

Python教程18:Lambda函数与高阶函数

Python教程18:Lambda函数与高阶函数 “简洁是智慧的灵魂。” Lambda函数是Python中一种简洁的函数定义方式,配合map、filter等高阶函数,能让代码更加优雅。今天我们学习函数式编程的基础。 1. Lambda函数基础 什么是Lambda Lambda是匿名函数,用于简单的单行函数: 1# 普通函数 2def square(x): 3 return x ** 2 4 5# Lambda函数 6square_lambda = lambda x: x ** 2 7 8print(square(5)) # 25 9print(square_lambda(5)) # 25 语法 1lambda 参数: 表达式 只能有一个表达式 自动返回表达式的值 不需要return 可以有多个参数 1# 多个参数 2add = lambda x, y: x + y 3print(add(3, 5)) # 8 4 5# 无参数 6greet = lambda: "Hello!" 7print(greet()) # Hello! 8 9# 默认参数 10power = lambda x, n=2: x ** n 11print(power(3)) # 9 12print(power(3, 3)) # 27 2. Lambda的实际应用 排序 1# 按元组第二个元素排序 2students = [ 3 ("Alice", 85), 4 ("Bob", 92), 5 ("Charlie", 78) 6] 7 8# 使用lambda 9students.sorted(key=lambda x: x[1], reverse=True) 10print(students) 11# [('Bob', 92), ('Alice', 85), ('Charlie', 78)] 12 13# 字典排序 14scores = {"Alice": 85, "Bob": 92, "Charlie": 78} 15sorted_scores = dict(sorted(scores.items(), key=lambda x: x[1], reverse=True)) 条件判断 1# 三元表达式 2max_val = lambda a, b: a if a > b else b 3print(max_val(10, 20)) # 20 4 5# 复杂条件 6grade = lambda score: 'A' if score >= 90 else ('B' if score >= 80 else 'C') 7print(grade(85)) # B 3. 高阶函数 高阶函数是接受函数作为参数或返回函数的函数。 ...

2024-08-07 · 3 min · 639 words · 老墨

Python教程17:函数基础

Python 教程 17:函数基础 “代码复用,从函数开始。” 函数是编程中最重要的概念之一。如果说变量是存储数据的容器,那函数就是执行任务的工具。掌握函数,你的代码将更加模块化、可维护、可复用。 1. 什么是函数 函数是一段可重复使用的代码块,用于完成特定任务。 1# 定义函数 2def greet(): 3 print("你好,世界!") 4 5# 调用函数 6greet() # 输出:你好,世界! 7greet() # 可以多次调用 为什么需要函数: 代码复用:写一次,用多次 模块化:把复杂问题分解 可维护:修改一处,处处生效 可读性:函数名即文档 2. 函数的定义 1def 函数名(参数列表): 2 """文档字符串""" 3 函数体 4 return 返回值 关键字: def:定义函数 函数名:遵循变量命名规则 参数列表:可选 return:返回值,可选 1# 最简单的函数 2def hello(): 3 print("Hello") 4 5# 带参数的函数 6def greet(name): 7 print(f"你好,{name}!") 8 9# 带返回值的函数 10def add(a, b): 11 return a + b 12 13# 完整的函数 14def calculate_area(radius): 15 """ 16 计算圆的面积 17 18 Args: 19 radius: 圆的半径 20 21 Returns: 22 圆的面积 23 """ 24 pi = 3.14159 25 return pi * radius ** 2 3. 函数的参数 位置参数 按顺序传递: ...

2024-07-05 · 3 min · 563 words · 老墨