05-函 数的参数
函数的参数:本质是将函数的实际参数传给形式参数的过程。
def add(a, b): # a,b是形参
print(a + b)
add(3, 5) # 传递实参
-
必选参数:定义了几个,就必须要传几个
def func(a,b):
print(f'a = {a}\nb = {b}')
func(1,2) -
默认参数:给某个参数指定一个默认值,定义时设置,格式是
形参名=默认值
,- 不传参时,使用定义时的默认值
- 如果传参,则使用传参值来更新数据
def func(a=12):
print(f'a = {a}')
func() -
可变参数:
*args
将实参所有的位置参数接收,放置在一个元组中def func(*args):
print(args)
print(type(args))
func(1, 2, 3) # 实参处传递任意多个值
(1, 2, 3)
<class 'tuple'> -
关键字参数:
**kwargs
接收所有的关键字参数,然后将其转换成一个字典赋值给kwargs
这个形参def func(**args):
print(args)
print(type(args))
func(name="张三") # 在实参处以 key=value 字典的形式传参
func(t=(1,2,3))
{'name': '张三'}
<class 'dict'>
{'t': (1, 2, 3)}
<class 'dict'>
拓展:匿名关键字参数
应用场景:要限制关键字参数的名字的时候
def person(name, age, *, city='hk', job='coder'): # * 表示 * 之后的参数传递需要使用关键字传参的方式
print(name, age, city, job)
person('Wilia', 18, city='shanghai', job='eater')
Wilia 18 shanghai eaterdef person(name, age, *, city='hk', job='coder'): # * 表示 * 之后的参数传递需要使用关键字传参的方式
print(name, age, city, job)
person(name='Wilia', age=19, city='shanghai', job='eater') # 你非要指定第一二个参数的形参名也是可以的
Wilia 19 shanghai eaterdef person(name, age, *, city='hk', job='coder'): # * 表示 * 之后的参数传递需要使用关键字传参的方式
print(name, age, city, job)
person(name='Tom', age=20, city='shanghai') # 不给的话,就使用默认值
Tom 20 shanghai coder
ps:内置的帮助函数
EDY@CHINAMI-341OVLV MINGW64 ~/code/mdviewer (master)
$ python
Python 3.12.6 (tags/v3.12.6:a4a2d2b, Sep 6 2024, 20:11:23) [MSC v.1940 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> help('keywords')
Here is a list of the Python keywords. Enter any keyword to get more help.
False class from or
None continue global pass
True def if raise
and del import return
as elif in try
assert else is while
async except lambda with
await finally nonlocal yield
break for not
>>> exit()