Python 函数2 · 核心笔记 2026-08-27

函数是什么

给一段代码起名字,独立调用、重复使用。让编写、阅读、升级都更容易。

我们已经用过很多内置函数:

定义 & 调用

def print_hello(): """ 这是一个函数的定义,用于打印一段文字 """ print("hello world") # 调用函数(不要忘了括号) print_hello() print_hello()

参数传递

单个参数

def introduce(name): print(f"大家好,我的名字是:{name}") introduce("小明") introduce("小白")

多个参数 & 位置实参

def introduce(name, gender): print(f"大家好,我的名字是:{name},是个小{gender}") introduce("小明", "男生") # 顺序必须一致

关键字实参 (key=value)

introduce(name="小明", gender="男生") introduce(gender="男生", name="小明") # 顺序可换

默认值参数

def introduce(name, gender, age=6): print(f"大家好,我是{name},小{gender},今年{age}岁") introduce("小明", "男生") # age 使用默认 6 introduce("小白", "女生", 5) # 覆盖默认值
多种调用方式: introduce("小明")introduce(name="小明")introduce("小白", 5)introduce(age=5, name="小白")

返回值 return

return 返回结果,函数调用会变成返回值。

def add(x, y): return int(x) + int(y) result = add(3, 5) print(result) # 8 print(add("4", "6")) # 10

返回字典 / 多个值

students = { "xiaoming": {"id": 101, "age": 18} } def get_student(name): if name in students: return students[name]["age"], students[name]["id"] return None, None age, id = get_student("xiaoming") print(age, id) # 18 101

函数返回练习题

练习要求: 编写 compute 函数支持加减乘除,再封装 addsub 函数调用它。

完整代码实现

def compute(x, y, method): if method == "add": return x + y elif method == "sub": return x - y elif method == "mul": return x * y elif method == "div": return x / y else: return "❌ 未知的运算方式" def add(x, y): return compute(x, y, "add") def sub(x, y): return compute(x, y, "sub") def mul(x, y): return compute(x, y, "mul") def div(x, y): return compute(x, y, "div") print("=" * 30) print("函数返回练习题测试") print("=" * 30) print(f"add(3, 5) = {add(3, 5)}") # 8 print(f"add(10, 20) = {add(10, 20)}") # 30 print("=" * 30)

模块 (module)

将函数存储在 .py 文件中,通过 import 使用。

import compute # compute.add import compute as cp # cp.add from compute import add, sub # 直接使用 add/sub from compute import * # 所有函数

函数模块练习题 · 学生查询

模块拆分练习: 将学生数据与查询逻辑封装在模块中,并在主程序中循环调用。

文件 1:student_query.py

存放学生字典,提供 get(name) 查询函数。

students = { "xiaoming": {"id": 101, "age": 18, "gender": "boy"}, "xiaohuang": {"id": 102, "age": 19, "gender": "girl"}, "xiaowang": {"id": 103, "age": 17, "gender": "girl"}, } def get(name): """根据姓名返回学生信息字典,不存在则返回 None""" return students.get(name)

文件 2:school.py (主程序)

导入 student_query 模块,循环接收输入并查询。

import student_query while True: print("#" * 20) name = input("请输入学生姓名 (输入 quit 退出):") if name == "quit": break info = student_query.get(name) if info: print("✅ 查到了,信息是:", info) else: print("❌ 没有这个学生的信息")
运行效果:

lambda 匿名函数

一句话函数,用于简单逻辑,常作为 key 参数传入排序。

sum = lambda x, y: x + y print(sum(2, 3)) # 5 sgrades = [("xiaoming", 89), ("xiaozhao", 77), ("xiaoxiaozhang", 99)] sgrades.sort(key=lambda x: x[1]) print(sgrades) # 按成绩升序 print(sorted(sgrades, key=lambda m: m[1], reverse=True)) # 按成绩降序