Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain

2.4 函数定义与调用

函数是 Python 编程中的核心概念之一,它允许我们将代码块封装为一个可重用的单元。通过函数,我们可以提高代码的可读性、可维护性和复用性。本节将详细介绍如何定义和调用函数,以及函数的相关特性。

2.4.1 函数的定义

在 Python 中,函数通过 def 关键字定义。函数定义的基本语法如下:

def function_name(parameters):
    """函数文档字符串"""
    # 函数体
    return value
  • function_name: 函数的名称,遵循 Python 的命名规则(通常使用小写字母和下划线)。
  • parameters: 函数的参数列表,可以有零个或多个参数。参数是函数接收的输入值。
  • """函数文档字符串""": 可选的文档字符串,用于描述函数的功能和用法。
  • 函数体: 函数的具体实现代码。
  • return: 可选的返回语句,用于返回函数的结果。如果没有 return 语句,函数默认返回 None。

示例:

def greet(name):
    """向指定名称的用户打招呼"""
    return f"Hello, {name}!"

2.4.2 函数的调用

定义函数后,可以通过函数名加括号的方式调用函数,并传递相应的参数。例如:

message = greet("Alice")
print(message)  # 输出: Hello, Alice!

函数调用时,参数可以是常量、变量或表达式。Python 支持位置参数和关键字参数两种传递方式。

  • 位置参数: 按照参数定义的顺序传递值。
  • 关键字参数: 通过参数名指定值,顺序可以任意。

示例:

def add(a, b):
    return a + b

# 位置参数
result1 = add(3, 5)  # 输出: 8

# 关键字参数
result2 = add(b=5, a=3)  # 输出: 8

2.4.3 默认参数

Python 允许为函数参数指定默认值。如果调用函数时未传递该参数,则使用默认值。

def power(base, exponent=2):
    return base ** exponent

print(power(3))      # 输出: 9 (使用默认的 exponent=2)
print(power(3, 3))   # 输出: 27

2.4.4 可变参数

Python 支持可变数量的参数,可以通过 *args 和 **kwargs 实现。

  • *args: 用于接收任意数量的位置参数,存储为元组。
  • **kwargs: 用于接收任意数量的关键字参数,存储为字典。

示例:

def print_args(*args, **kwargs):
    print("位置参数:", args)
    print("关键字参数:", kwargs)

print_args(1, 2, 3, name="Alice", age=25)
# 输出:
# 位置参数: (1, 2, 3)
# 关键字参数: {'name': 'Alice', 'age': 25}

2.4.5 返回值

函数可以通过 return 语句返回一个或多个值。如果返回多个值,Python 会将其打包为元组。

示例:

def min_max(numbers):
    return min(numbers), max(numbers)

result = min_max([3, 1, 4, 1, 5, 9])
print(result)  # 输出: (1, 9)

2.4.6 Lambda 函数

Lambda 函数是一种匿名函数,通常用于简单的操作。它的语法如下:

lambda parameters: expression

示例:

square = lambda x: x ** 2
print(square(5))  # 输出: 25

2.4.7 函数的作用域

Python 中的变量作用域分为局部作用域和全局作用域。函数内部定义的变量属于局部作用域,函数外部定义的变量属于全局作用域。

  • 局部变量: 只能在函数内部访问。
  • 全局变量: 可以在整个程序范围内访问。

示例:

x = 10  # 全局变量

def func():
    y = 5  # 局部变量
    print(x + y)

func()  # 输出: 15

如果需要修改全局变量,可以使用 global 关键字。

x = 10

def func():
    global x
    x = 20

func()
print(x)  # 输出: 20

2.4.8 递归函数

递归函数是指在函数内部调用自身的函数。递归常用于解决分治问题,如阶乘、斐波那契数列等。

示例:

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)

print(factorial(5))  # 输出: 120

2.4.9 总结

函数是 Python 编程中不可或缺的工具。通过定义和调用函数,我们可以将复杂的逻辑分解为更小的模块,从而提高代码的可读性和可维护性。掌握函数的定义、参数传递、返回值以及作用域等概念,是编写高效 Python 程序的基础。

Last Updated:: 3/17/25, 7:20 PM