形参 vs 实参:一文搞懂 Python 函数传参的底层逻辑
在上一章,我们搞懂了函数的标准语法。 但大家发现没有,我们之前写的函数(比如打印“欢迎光临”)有点太傻了。不管是对张三说,还是对李四说,它永远只打印那一句话。 如果我想让函数根据不同的情况,执行不同的操作,该怎么办?给我一个体温值,我帮你判断是否发烧(体温是不确定的)。这就需要给函数开一个 “入口” ,让我们可以把数据 传进去 。 这个入口,就叫 传入参数 。如果没有参数,这个榨汁机里就只能永远锁死一个烂苹果,永远只出一种汁,那还有什么用?😂# 定义时:在括号里挖坑(占位)def 函数名(参数1, 参数2, ...): 使用参数干活的代码...# 调用时:往坑里填数据函数名(数据1, 数据2, ...)
# 定义一个接受两个参数 x 和 y 的函数def add(x, y): result = x + y print(f"{x} + {y} 的计算结果是:{result}")# 调用时,传入具体的数据add(1, 2) # 打印:1 + 2 的计算结果是:3add(100, 200) # 打印:100 + 200 的计算结果是:300
看!同一个函数 add,因为传入的参数不同,算出的结果也不同!这就是函数的灵活性。作用: 它只是一个 占位符 (空头支票),代表“这里将来会有一个数据”。💡 一句话记下来: 形参是用来占位的,实参是用来填坑的。这是一个硬性规则(至少目前是)。 定义了几个形参,调用时就必须传几个实参。def add(x, y): # 定义了2个坑 print(x + y)add(1) # 报错!只填了1个坑 (TypeError)add(1, 2, 3) # 报错!给了3个萝卜,坑不够放 (TypeError)
需求: 定义一个函数 check_fever(temp) ,传入体温值。如果体温 > 37.3,打印“体温过高,请复查!”def check_fever(temp): # 这里的 temp 是形参 print(f"--- 正在检测体温:{temp}度 ---") if temp > 37.3: print("体温过高,请复查!🚫") else: print("体温正常,请通行。✅")# 调用测试(这里的数字是实参)check_fever(36.5)check_fever(38.0)
- 形参 在定义处(占位), 实参 在调用处(真数据)。