15 分钟
Python 入门

默认参数与关键字参数

掌握默认参数值和关键字参数

  • 学会给参数设置默认值
  • 用关键字参数改变传参顺序
  • 理解参数顺序规则

默认参数

给参数默认值,调用时可以不传:

示例代码(可运行)

关键字参数

调用时用 参数名=值,可以不按顺序:

示例代码(可运行)
⚠️参数顺序规则

位置参数必须在关键字参数前面。默认参数必须放在普通参数后面。

预测输出
def power(base, exp=2):
    return base ** exp

print(power(3))
print(power(2, 10))

混合使用

示例代码(可运行)
找 Bug默认参数必须放在普通参数后面,不能放前面。
def greet(greeting="你好", name): print(f"{greeting},{name}")
填空题填写空白处的代码
def greet(name, greeting="你好"): print(greeting, name) greet("小红", ="早上好")
选择题

def f(a, b=1, c=2): f(10) 中 b 和 c 的值是?

选择题

def f(a, b=10, c=20): 调用 f(1, c=30) 后 b 的值是?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

Python 里整数、字符串甚至函数都是对象,堆在内存里;变量不是装东西的盒子,而是一张贴在对象上的「名字标签」(引用)。id(x) 看对象身份,is 比身份、== 比值。CPython 会缓存 -5~256 的小整数,所以 a=1;b=1 时 a is b 为 True,但 a=300;b=300 未必。结论:判断值是否相等永远用 ==,判断是不是 None 才用 is。

挑战任务

默认参数

简单+50 XP

写 power(base, exp=2) 计算 base 的 exp 次方。

默认参数
2 个测试用例

课后作业

购物计算器

中等+20 XP

写 total(price, count=1, discount=1) 返回总价。

购物计算器
1 个测试用例