教程 python tutorial

函数定义与调用

函数是 Python 中组织代码的基本单位,可以提高代码的可读性和复用性。在本章节中,我们将深入了解 Python 中函数的定义与调用,包括参数的传递方式、返回值的使用等。

函数的定义

在 Python 中,使用 def 关键字来定义一个函数。函数的定义包括函数名、参数列表以及函数体。

python
def greet(name):
    print(f"Hello, {name}!")

上述代码定义了一个简单的函数 greet(),它接收一个参数 name,并打印出问候信息。

调用函数

定义函数后,我们可以通过函数名来调用它,并传递相应的参数。

python
greet("Alice")

输出:

代码
Hello, Alice!

函数的参数

位置参数

位置参数是函数定义时最常见的参数类型,调用时按顺序传递。

python
def add(x, y):
    return x + y

print(add(2, 3))  # 5

默认参数

Python 函数支持为参数设置默认值,当调用时没有提供参数值时,使用默认值。

python
def greet(name="Guest"):
    print(f"Hello, {name}!")

greet()          # Hello, Guest!
greet("Bob")     # Hello, Bob!

可变参数

有时你可能不知道要传递多少个参数,Python 提供了可变参数的功能,允许函数接收任意数量的位置参数和关键字参数。

*args

*args 用于接收多个位置参数,并将它们组合成一个元组。

python
def sum_all(*args):
    return sum(args)

print(sum_all(1, 2, 3, 4, 5))  # 15

**kwargs

**kwargs 用于接收多个关键字参数,并将它们组合成一个字典。

python
def greet(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

greet(name="Alice", age=25)

输出:

代码
name: Alice
age: 25

参数传递方式总结

  • 位置参数:按顺序传递。
  • 默认参数:提供默认值,可以选择性传递。
  • 可变参数:*args 用于位置参数,**kwargs 用于关键字参数,支持不定数量的参数。

返回值

函数可以使用 return 语句返回值。如果没有 return,函数将返回 None。

python
def multiply(x, y):
    return x * y

result = multiply(2, 3)
print(result)  # 6

如果函数没有返回值,它默认返回 None。

python
def no_return():
    print("This function has no return value.")

result = no_return()  # 输出:This function has no return value.
print(result)  # None

函数的作用域

在 Python 中,函数内定义的变量是局部变量,仅在函数内有效;而函数外的变量是全局变量,可以在函数外部访问。

python
x = 10  # 全局变量

def my_function():
    x = 5  # 局部变量
    print(x)

my_function()  # 5
print(x)        # 10

关键字参数和位置参数的混合使用

关键字参数可以与位置参数混合使用,但关键字参数必须放在位置参数后面。

python
def introduce(name, age=30, city="New York"):
    print(f"My name is {name}, I am {age} years old, and I live in {city}.")

introduce("Alice")  # My name is Alice, I am 30 years old, and I live in New York.
introduce("Bob", city="Los Angeles")  # My name is Bob, I am 30 years old, and I live in Los Angeles.

函数的嵌套

在 Python 中,函数可以嵌套定义,即在一个函数内部定义另一个函数。嵌套函数可以访问外部函数的变量。

python
def outer_function():
    x = 10

    def inner_function():
        print(f"Inner function accessing outer function variable: {x}")

    inner_function()

outer_function()  # Inner function accessing outer function variable: 10

总结

  • 使用 def 关键字定义函数,传递参数并返回值。
  • 可以使用位置参数、默认参数和可变参数来定义灵活的函数。
  • 函数的返回值非常重要,了解如何正确使用 return。
  • 函数内外的作用域不同,局部变量只能在函数内访问,外部变量可以在函数外访问。
  • 函数的嵌套和关键字参数的使用使得 Python 函数更加强大和灵活。

掌握函数的定义与调用是编写 Python 程序的基础,可以帮助你提高代码的复用性和可读性。