第六章:函数与模块——代码界的“乐高积木”
1. 拒绝重复劳动:把代码装进“黑盒子”
各位少侠,经过前五章的修炼,你已经能写出逻辑通顺、数据结构丰富的程序了。但有没有发现,随着代码越来越长,你开始不断地复制粘贴同一段代码?比如计算圆的面积,你在第10行写了一遍公式,第50行又要算,又复制了一遍。
这太不“极客”了!真正的编程高手,都是“懒惰”的。
函数(Function),就是你手中的“乐高积木”或者“魔法黑盒子”。你把一段常用的逻辑封装进去,给它起个名字。下次想用的时候,喊一声它的名字(调用),它就开始工作。
定义一个函数的语法很简单,用 def 关键字:
python
def greet(name):
"""这是一个打招呼的函数"""
print(f"你好,{name}!欢迎来到Python的世界。")
# 调用函数
greet("张三") # 输出:你好,张三!欢迎来到Python的世界。
greet("李四") # 输出:你好,李四!欢迎来到Python的世界。
看,greet 就是那个黑盒子,name 是你喂给它的原材料(参数),它吐出了问候语(执行结果)。
2. 参数与返回值:黑盒子的“进料”与“出料”
函数不仅仅是打印一句话那么简单,它更像是一个加工厂。
- 参数(Arguments):原材料。你可以设定默认值,比如
def cook(food="米饭"):,如果你不传参数,它就默认做米饭。 - 返回值(Return):成品。函数处理完数据后,通过
return把结果交还给你。
python
def calculate_area(radius):
pi = 3.14159
area = pi * (radius ** 2)
return area # 把计算结果扔出来
my_house_area = calculate_area(5)
print(f"我家房子的面积是:{my_house_area}")
注意:一旦函数执行到 return,它就会立刻结束。后面的代码哪怕写得再花哨,也不会被执行了。
3. 模块(Module):把积木装进“工具箱”
如果你的函数有100个,全写在一个文件里,那这个文件得有多长?找起来多麻烦?
这时候,你需要模块(Module)。在Python里,一个 .py 文件就是一个模块。你可以把处理数学的函数放在 math_utils.py 里,把处理字符串的放在 string_utils.py 里。
如何使用模块?
假设你写了一个 my_tools.py,里面有个函数叫 add(a, b)。
在主程序里,你只需要:
python
import my_tools # 把工具箱拿过来
result = my_tools.add(1, 2) # 使用工具箱里的工具
print(result)
或者,你只想拿那一个工具:
python
from my_tools import add # 只把 add 这个工具拿出来放在桌上
result = add(1, 2)
4. 站在巨人的肩膀上:标准库与第三方库
Python最强大的地方在于它自带了海量的“官方积木”(标准库),还有全世界开发者贡献的“第三方积木”(第三方库)。
- 标准库:比如
import random,你就可以用random.randint(1, 10)生成随机数;比如import time,你可以让程序睡一会儿time.sleep(1)。 - 第三方库:比如你想做数据分析,可以安装
pandas;想做网站,可以安装flask。安装它们只需要在命令行敲一行pip install 库名。
千万不要重复造轮子! 你想实现的功能,99%的概率已经有人写好模块了,你的任务是找到它,然后 import 它。
5. 本章小结与课后“折磨”
今天你学会了编程的核心思想:封装。函数让你告别了复制粘贴,模块让你告别了文件混乱。
课后小挑战:
- 写一个函数
is_even(num),传入一个数字,如果是偶数返回True,奇数返回False。 - 写一个函数
calculate_tax(income),假设税率是10%,返回税后收入。 - 导入 Python 自带的
math模块(import math),使用math.sqrt()计算 144 的平方根。 - 尝试把你的函数保存到一个单独的文件里,然后在另一个文件里导入并使用它。
敲完代码,恭喜你,你已经具备了初级程序员的模块化思维!下一节,我们将挑战编程界的终极BOSS——面向对象编程(OOP),那是通往架构师的必经之路!
本文由 AI 辅助生成
参考资料: