一、函数基础学习笔记

一、函数基础学习笔记

2026-02-21
Python基础
type
Post
status
Published
date
Feb 21, 2026
slug
python-function-basics-study-notes-1
summary
学了函数之后才明白,函数就像是把重复的代码打包成一个工具,需要的时候直接调用。这样代码更清晰,也更容易维护!
tags
Python函数
category
Python基础
icon
password
💡 学习感悟:学了函数之后才明白,函数就像是把重复的代码打包成一个工具,需要的时候直接调用。这样代码更清晰,也更容易维护!

1. 什么是函数?

函数是组织好的、可重复使用的代码块。
📝 我的理解:函数就像是洗衣机里的程序——你不需要每次都手动控制进水、洗涤、脱水,只需要按一个按钮(调用函数),洗衣机就会自动完成一系列操作。

2. 函数的定义与调用

2.1 基本语法

2.2 无参数、无返回值

📝 我的理解def 是 define(定义)的缩写。函数名后面必须加 (),函数体要缩进 4 个空格。

2.3 带参数和返回值的函数

📝 我的理解
  • 参数是函数的输入口——a, b形参3, 5实参
  • 返回值是函数的输出口——通过 return 把结果传出来

3. 函数的参数(详解)

3.1 参数类型总览


3.2 位置参数

⚠️ 注意:顺序不能乱,否则结果就错了!

3.3 关键字参数

📝 我的理解:给参数贴上标签,不用管顺序,代码更清晰。

3.4 默认参数

⚠️ 注意:默认参数必须放在非默认参数后面!

3.5 可变参数

📝 我的理解*args可变长度的元组**kwargs可变长度的字典

3.6 同时使用 *args 和 **kwargs

📝 我的理解*args**kwargs 就像万能口袋——*args 装任意数量的数据(位置参数),**kwargs 装任意数量的配置(关键字参数)。这样写函数特别灵活,既可以传任意个数的数据,又可以加各种可选配置!

4. 函数的返回值

4.1 返回单个值

4.2 返回多个值

4.3 没有返回值


5. 函数嵌套调用

5.1 什么是嵌套调用

在一个函数中调用另一个函数。
函数调用遵循栈结构
📝 我的理解:函数调用就像叠盘子——先调用的函数在栈底,后调用的在栈顶。执行完后,先返回栈顶的,再依次往下。
📝 我的理解:就像是流水线——一个函数负责一道工序,完成后再交给下一个函数。

5.2 实际应用示例


5.3 递归调用

递归是指函数在执行过程中调用自己
递归是指函数在执行过程中调用自己
递归的两个关键要素
  1. 终止条件 —— 什么时候停止递归(如 n <= 1
  1. 递归表达式 —— 如何调用自己(如 n * factorial(n - 1)
📝 我的理解:递归就像俄罗斯套娃——大娃娃里装着相同的小娃娃,一层一层往里找,直到找到最小的那个(终止条件),然后再一层一层返回结果。写递归时一定要记得写终止条件,不然就会无限循环!

6. 函数说明文档(Docstring)

6.1 Sphinx 格式

6.2 Google 格式

6.3 如何选择

场景
推荐格式
原因
个人/小项目
Sphinx
简洁,打字少
团队/大项目
Google
可读性强

6.4 查看文档


7. 踩坑记录

7.1 忘记调用函数

⚠️ 踩坑say_hi 是函数对象,say_hi() 才是调用函数。

7.2 参数顺序错误


7.3 默认参数的陷阱

⚠️ 踩坑:默认参数在函数定义时创建,可变对象会被共享!

7.4 文档和代码不一致

⚠️ 踩坑:文档写了返回字典,实际返回字符串,会让使用者困惑。

8. 核心知识点整理

8.1 函数定义流程

8.2 参数类型速查

类型
语法
说明
位置参数
def f(a, b)
按顺序传
关键字参数
f(a=1, b=2)
按名称传
默认参数
def f(a=1)
有默认值
可变参数
*args, **kwargs
接收任意个数

8.3 常用内置函数

函数
作用
示例
len()
获取长度
len([1,2,3])3
sum()
求和
sum([1,2,3])6
max()
最大值
max([1,5,3])5
min()
最小值
min([1,5,3])1
推荐云服务

雨云 - 云服务器首选

稳定 · 高速 · 性价比超高

使用优惠码立享折扣,开启你的云端之旅~

一元试用秒级开通24h在线客服

优惠码

zqf
立即访问
Loading...
灵心小窝

灵心小窝

这里不是一个喧闹的地方,只是用来存放一些还不想遗忘的东西。

声明 © 2026 早清风
加载中...