当前位置:首页>python>【Python小白速通】函数默认参数?说白了就是"给代码设个'懒人模式'"!

【Python小白速通】函数默认参数?说白了就是"给代码设个'懒人模式'"!

  • 2026-08-22 14:11:16
【Python小白速通】函数默认参数?说白了就是"给代码设个'懒人模式'"!

点击蓝字

关注我们

【Python小白速通】函数默认参数?说白了就是"给代码设个'懒人模式'"!

咱之前唠过函数参数,就像给干活的代码留"备注"——泡咖啡要3分糖、算奶茶要加珍珠,但总有人懒得每次都写备注咋办?比如点奶茶默认选"正常糖",点咖啡默认加"全脂奶",这就是**默认参数**的精髓!

简单说,默认参数就是给函数的"填空位"预设好答案,你不填就按预设来,填了就按你的来,主打一个"省心不费脑",像手机的"默认铃声",不想改就用自带的,想改也能随便换~

一、先唠透:啥是函数默认参数?(纯人话版)

先掰碎了说,不整专业术语:

- 普通参数:函数的"必填填空位",比如点奶茶必须选甜度,不传就做不了;

- 默认参数:函数的"选填填空位",预设了默认值,比如奶茶默认"5分糖",你不说就按这来,说了就按你说的来;

- 设置默认参数:定义函数时给参数赋值,比如`make_coffee(sugar=5)`,把"糖度"的默认值设为5分。

举个栗子:你去楼下奶茶店点单,老板默认给你做"5分糖+正常冰",你直接说"来一杯珍珠奶茶",老板就按默认做;你说"来一杯珍珠奶茶,0分糖",老板就按你的要求改——默认参数就是老板的"默认操作"!

二、实操!3种默认参数用法,小白也能秒会

咱从最简单的"基础默认参数"开始,一步步解锁,代码都标了"人话注释",复制就能跑~

姿势1:最基础的默认参数(懒人首选版)

给参数设个默认值,调用时不传就用默认,传了就覆盖,新手先拿捏这个!

python

#定义函数:泡咖啡,糖度默认5分,奶量默认250ml

def make_coffee(sugar=5, milk=250):

    print(f"✅ 咖啡做好啦!糖度:{sugar}分,奶量:{milk}ml")

#调用函数1:啥都不传,用默认值(懒人模式)

make_coffee()

#调用函数2:只传糖度,奶量还用默认(改一部分)

make_coffee(0)

#调用函数3:两个都传,全覆盖(自定义模式)

make_coffee(2, 200)

👉 运行结果:

✅ 咖啡做好啦!糖度:5分,奶量:250ml

✅ 咖啡做好啦!糖度:0分,奶量:250ml

✅ 咖啡做好啦!糖度:2分,奶量:200ml

姿势2:默认参数+必传参数(混搭版)

函数里既有"必填项"又有"选填项",必传参数放前面,默认参数放后面,像点奶茶"必须选品类,甜度可选"!

python

#定义函数:必传参数(咖啡品类)在前,默认参数(糖度)在后

def make_coffee_v2(coffee_type, sugar=5):

    print(f"✅ {coffee_type}做好啦!糖度:{sugar}分")

#调用函数1:传品类,用默认糖度

make_coffee_v2("拿铁")

#调用函数2:传品类+自定义糖度

make_coffee_v2("美式", 0)

👉 运行结果:

✅ 拿铁做好啦!糖度:5分

✅ 美式做好啦!糖度:0分

姿势3:关键字参数调用默认参数(防乱版)

参数多了怕传错?用"参数名=值"的方式调用,哪怕只改一个默认参数,也不用记顺序!

python

#定义函数:做奶茶,默认5分糖、正常冰、不加料

def make_milk_tea(sugar=5, ice="正常冰", add_on="无"):

    print(f"✅ 奶茶做好啦!糖度:{sugar}分,冰度:{ice},加料:{add_on}")

#调用函数:只改"加料",其他用默认(不用记参数顺序)

make_milk_tea(add_on="珍珠")

#调用函数:改冰度+加料,糖度默认

make_milk_tea(ice="少冰", add_on="芋圆")

👉 运行结果:

✅ 奶茶做好啦!糖度:5分,冰度:正常冰,加料:珍珠

✅ 奶茶做好啦!糖度:5分,冰度:少冰,加料:芋圆

三、避坑小彩蛋:新手最容易踩的3个坑

1. 参数顺序别搞反:必传参数一定要放在默认参数前面!比如`def make_coffee(sugar=5, coffee_type):`会报错,Python会懵:"到底哪个是必须传的?" 就像点奶茶先选"甜度(可选)"再选"品类(必填)",老板肯定骂你——"没说啥奶茶,我咋做?"

2. 默认参数别用可变值:千万别给默认参数设`[]`(空列表)、`{}`(空字典)!比如:

   python

   def add_order(food, order_list=[]):  # 踩坑版!

       order_list.append(food)

       return order_list

   # 第一次调用:['汉堡'],第二次调用:['汉堡', '薯条'](列表会累加)

   相当于奶茶默认加料"珍珠",结果你点两次,第二次多了一倍珍珠,纯纯踩坑!正确做法是设为`None`,再在函数里初始化:

   python

   def add_order(food, order_list=None):  # 正确版!

       if order_list is None:

           order_list = []

       order_list.append(food)

       return order_list

3. 默认参数只初始化一次:默认参数的值在定义函数时就定了,不是每次调用都重新算!比如用`datetime.now()`当默认参数,每次调用都是同一个时间,像奶茶默认"现做",结果老板提前做好一堆,不管啥时候点都是凉的~

四、实用小技巧:默认参数的"神仙用法"

用默认参数做"常用配置",比如写个算打车费的函数,默认起步价10元、每公里2元,不用每次都传:

python

def calc_taxi_fee(distance, base_fee=10, per_km=2):

    total = base_fee + (distance - 3) * per_km if distance > 3 else base_fee

    print(f"✅ {distance}公里打车费:{total}元")

#日常打车:用默认费用(10元起步+每公里2元)

calc_taxi_fee(5)

#节假日打车:改每公里费用(起步价默认,只改单价)

calc_taxi_fee(5, per_km=3)

👉 运行结果:

✅ 5公里打车费:14元

✅ 5公里打车费:16元

总结

1. Python函数默认参数是给参数预设"懒人值",调用时不传就用默认,传了就覆盖,核心是"参数名=默认值";

2. 必传参数放前、默认参数放后,调用时可用关键字参数(参数名=值)防传错;

3. 避开"默认参数用可变值、参数顺序搞反"这两个坑,默认参数能让函数更灵活省心。

扫码关注我们

知识奇妙世界

最新文章

随机文章