18.1 函数的定义(掌握)

函数是一个可重用的代码块,用于执行特定的任务。函数可以接收输入参数并返回结果,帮助我们组织代码并提高可读性和可维护性。

  • 定义函数的基本语法

    def function_name(parameters):
        """可选的文档字符串"""
        # 函数体
        return result  # 可选的返回值
  • 示例

    def greet(name):
        """打印问候信息"""
        print(f"Hello, {name}!")
    
    greet("Alice")  # 调用函数,输出: Hello, Alice!

18.2 函数的调用(掌握)

函数定义后可以通过调用来执行。函数调用可以传递参数,调用函数时参数的顺序要与定义时一致。

  • 示例

    def add(a, b):
        """返回两个数的和"""
        return a + b
    
    result = add(5, 3)  # 调用函数,传递参数
    print(result)       # 输出: 8

18.3 函数的参数(掌握)

函数可以接收参数,参数是函数外部传入的值,函数内部可以使用这些值。

18.3.1 位置参数

  • 定义和调用

    def multiply(x, y):
        return x * y
    
    print(multiply(2, 3))  # 输出: 6

18.3.2 默认参数

  • 定义默认参数:在定义函数时,可以为参数指定默认值,调用时可以选择性传入参数。

    def power(base, exponent=2):
        return base ** exponent
    
    print(power(3))        # 输出: 9 (使用默认 exponent)
    print(power(3, 3))     # 输出: 27 (覆盖默认 exponent)

18.3.3 可变参数

  • 使用 *args**kwargs*args 用于传入任意数量的位置参数,**kwargs 用于传入任意数量的关键字参数。

    def sum_all(*args):
        return sum(args)
    
    print(sum_all(1, 2, 3, 4))  # 输出: 10
    
    def print_info(**kwargs):
        for key, value in kwargs.items():
            print(f"{key}: {value}")
    
    print_info(name="Alice", age=30)  # 输出: name: Alice, age: 30

18.4 函数的返回值(掌握)

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

  • 示例

    def square(n):
        return n * n
    
    result = square(4)
    print(result)  # 输出: 16

18.4.1 多个返回值

  • 返回多个值:可以使用逗号分隔多个值。

    def divide(a, b):
        return a // b, a % b  # 返回商和余数
    
    quotient, remainder = divide(10, 3)
    print(quotient, remainder)  # 输出: 3 1

18.5 函数的文档字符串(掌握)

文档字符串(docstring)是函数定义中的字符串,用于描述函数的功能。文档字符串通常是函数的第一行,可以通过 help() 函数查看。

  • 示例

    def subtract(a, b):
        """返回 a 和 b 的差值"""
        return a - b
    
    print(help(subtract))  # 查看文档字符串

18.6 函数的作用域(掌握)

变量的作用域决定了其可见性和生命周期。在 Python 中,变量有局部作用域和全局作用域。

18.6.1 局部变量

  • 在函数内定义的变量:只在函数内有效,外部无法访问。

    def func():
        local_var = 10  # 局部变量
        print(local_var)
    
    func()
    # print(local_var)  # 会引发 NameError

18.6.2 全局变量

  • 在函数外定义的变量:可以在整个程序中访问。

    global_var = 20  # 全局变量
    
    def func():
        print(global_var)  # 可以访问全局变量
    
    func()  # 输出: 20

18.6.3 使用 global 关键字

  • 在函数内部修改全局变量:可以使用 global 关键字声明。

    global_var = 30
    
    def modify_global():
        global global_var  # 声明使用全局变量
        global_var += 10
    
    modify_global()
    print(global_var)  # 输出: 40

18.7 高阶函数(掌握)

高阶函数是指接受函数作为参数或返回一个函数的函数。在 Python 中,函数是第一类对象,可以作为参数传递。

18.7.1 函数作为参数

  • 示例

    def apply_function(func, value):
        return func(value)
    
    def square(n):
        return n * n
    
    result = apply_function(square, 5)
    print(result)  # 输出: 25

18.7.2 返回函数

  • 示例

    def outer_function(msg):
        def inner_function():
            print(msg)
        return inner_function  # 返回内嵌函数
    
    my_func = outer_function("Hello, World!")
    my_func()  # 输出: Hello, World!

18.8 匿名函数(了解)

匿名函数(lambda 函数)是一种没有名字的函数,通常用于需要小型函数的场景,如在 map()filter()sorted() 等函数中使用。

  • 示例

    square = lambda x: x * x
    print(square(5))  # 输出: 25
    
    # 使用 map() 函数
    numbers = [1, 2, 3, 4]
    squares = list(map(lambda x: x ** 2, numbers))
    print(squares)  # 输出: [1, 4, 9, 16]
结束

本文标题: Python3学习笔记第十八篇--函数

本文链接: https://blog.oyooy.com/archives/64.html

除非另有说明,本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。

最后修改:2025 年 02 月 08 日
如果觉得我的文章对你有用,请随意赞赏