跳转至

Python函数

定义函数

def greet(name):
    """向指定的人打招呼"""  # 文档字符串
    return f"你好, {name}!"

print(greet("小明"))  # 你好, 小明!

参数类型

默认参数

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

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

可变参数

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

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

关键字参数

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

show_info(name="小明", age=18, city="北京")

Lambda 表达式(匿名函数)

# 基本用法
square = lambda x: x ** 2
print(square(5))  # 25

# 与 map/filter 结合
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
evens = list(filter(lambda x: x % 2 == 0, numbers))

作用域

x = 10  # 全局变量

def func():
    x = 20   # 局部变量(不影响全局)
    print(x)  # 20

func()
print(x)  # 10

练习

动手实践

  1. 编写函数判断一个数是否为完全平方数
  2. 编写函数接收任意多个数字,返回最大值和最小值
  3. 用 Lambda 和 filter 筛选出列表中的正数