python_functions_basics.md 4.4 KB

Python 函数基础知识

1. 什么是函数

函数就是一段可重复使用的代码,用来封装特定逻辑。

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

特点:

  • 可复用
  • 便于维护
  • 让代码更清晰

2. 命名函数

最常见的函数是命名函数。

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

调用方式:

result = add(3, 5)
print(result)   # 8

3. 参数

函数可以接收参数。

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

调用:

greet("Tom")

4. 返回值

函数可以返回结果。

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

返回值可以赋给变量:

result = add(2, 3)
print(result)   # 5

如果函数中没有 return,默认返回 None

5. 默认参数

函数参数可以带默认值。

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

print(power(3))      # 9
print(power(3, 3))   # 27

6. 关键字参数

可以按参数名传值。

def show_student(name, age, city="Beijing"):
    print(name, age, city)

show_student("Alice", 18)
show_student(name="Bob", age=20, city="Shanghai")

7. 位置参数和关键字参数

位置参数

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

print(add(3, 5))

关键字参数

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

print(add(a=3, b=5))

8. 可变参数 *args

*args 表示接收任意数量的位置参数。

def sum_all(*numbers):
    total = 0
    for n in numbers:
        total += n
    return total

print(sum_all(1, 2, 3, 4))  # 10

9. 关键字可变参数 **kwargs

**kwargs 表示接收任意数量的关键字参数。

def print_scores(**scores):
    for key, value in scores.items():
        print(f"{key} = {value}")

print_scores(math=90, english=88)

10. 返回多个值

函数可以一次返回多个值,实际上返回的是一个元组。

def get_info():
    return "Tom", 18

name, age = get_info()
print(name, age)

11. 匿名函数 lambda

lambda 用于定义简单函数。

square = lambda x: x * x
print(square(6))  # 36

适合:

  • 简单计算
  • 回调函数
  • 一次性逻辑

12. 递归函数

递归函数是自己调用自己的函数。

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

print(factorial(5))  # 120

注意:

  • 递归必须有终止条件
  • 否则会造成无限递归

13. 作用域

全局变量

count = 0

def increase():
    global count
    count += 1
    return count

局部变量

def test():
    x = 5
    print(x)

局部变量只在函数内有效。

14. 闭包

闭包是指:函数内部定义了函数,并返回这个内部函数。

def outer():
    x = 10

    def inner():
        return x + 5

    return inner

c = outer()
print(c())  # 15

15. 函数与方法的区别

函数

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

方法

class Person:
    def greet(self, name):
        print(f"Hello, {name}")

区别:

  • 函数独立存在
  • 方法属于类或对象
  • 调用方式不同

16. 函数嵌套

函数可以定义在另一个函数内部。

def outer():
    def inner():
        print("inner")
    inner()

outer()

17. nonlocal

如果要修改外层函数中的变量,需要使用 nonlocal

def outer():
    x = 10

    def inner():
        nonlocal x
        x += 1
        print(x)

    inner()

outer()

18. 文档字符串 docstring

函数可以写说明文档。

def add(a, b):
    """返回 a 和 b 的和"""
    return a + b

查看:

print(add.__doc__)

19. 函数作为参数

函数也可以作为参数传递给其他函数。

def operate(x, func):
    return func(x)

print(operate(5, lambda x: x * 2))  # 10

20. 常见函数分类

  • 命名函数
  • 默认参数函数
  • 可变参数函数
  • 关键字参数函数
  • 匿名函数(lambda)
  • 递归函数
  • 生成器函数
  • 闭包函数

21. 一句话总结

函数就是把一段代码封装成一个可重复调用的模块,能够提高代码复用性、可维护性和清晰度。

Python 中函数最核心的知识包括:

  • 参数
  • 返回值
  • 默认参数
  • 可变参数
  • 递归
  • 作用域
  • 闭包

掌握这些后,后续学习类、装饰器、生成器都会更容易。