Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

PyFirst

第六章:函数工坊

到现在为止,你写的代码都是"直来直去"的——从头执行到尾。但想象一下,如果你写了一个很棒的功能(比如计算 BMI),每次要用都得重新写一遍,多麻烦!

函数(Function) 就是解决这个问题的。它让你把一段代码打包起来,起了名字,以后随时"呼叫"。


6.1 什么是函数?你已经用过了!

其实从第一章开始,你就在用函数了——print() 就是 Python 内置的函数。

函数就像一台自动贩卖机

Python
Loading editor...

6.2 创建你的第一个函数

def 关键字来定义函数:

Python
Loading editor...

6.3 参数:给函数传递信息

光会打招呼还不够——得知道跟谁打招呼:

Python
Loading editor...

函数可以有多个参数

Python
Loading editor...

💡 参数的位置要一一对应:introduce("小明", 15) 中 "小明"→name,15→age。


6.4 返回值:让函数"交作业"

自动贩卖机给你饮料,函数也应该能"给你一个结果"。用 return 返回:

Python
Loading editor...

💡 return 还有一个作用:一旦执行到 return,函数立刻结束,后面的代码不执行。


6.5 默认参数:给参数设个"备选值"

有时候大部分情况参数都一样,你可以设默认值:

Python
Loading editor...

6.6 函数工具箱实战

把之前写的实用功能全部打包成函数:

Python
Loading editor...

💡 函数里面的 """..."""文档字符串,用来解释函数是干什么的。好习惯,从现在养成。


6.7 作用域:谁的东西归谁

函数内部和外部是两个不同的世界

Python
Loading editor...
位置可见范围
函数外部定义的变量函数内可以读取(不建议修改)
函数内部定义的变量只有这个函数自己能访问

6.8 动手练习

练习 1:写一个函数 is_even(n),判断一个数是奇数还是偶数。

>

练习 2:写一个函数 calculate(operator, a, b),根据运算符("+", "-", "*", "/")返回计算结果。

>

练习 3:写一个函数 fibonacci(n),返回斐波那契数列的前 n 项(斐波那契数列:1, 1, 2, 3, 5, 8, 13...)。

Python
Loading editor...

6.9 本章小结

你学到了什么具体内容
✅ 定义函数`def 函数名(参数):`
✅ 调用函数`函数名(参数值)`
✅ 参数给函数传递数据,支持多个参数
✅ 返回值`return` 把结果交出去,函数立刻结束
✅ 默认参数参数可以有默认值,调用时不传就用默认值
✅ 文档字符串`"""..."""` 解释函数用途
✅ 作用域函数内部的变量外面看不到

🚀 下一章预告:是时候把学到的所有知识融会贯通了!下一章,我们将动手创造一个完整的小项目——用 Python 做一个能在浏览器里玩的小游戏!


本章内容基于 [Python 官方教程](https://docs.python.org/3/tutorial/) 改编,遵循 PSF License 许可。