Python函数默认参数

Python函数默认参数教程

Python函数参数,可以支持位置参数和 关键字参数,但不管是位置参数还是关键字参数,函数参数的个数必须保持一致,如果参数的个数不一致,则程序会报错。

Python 的函数参数,还为我们提供了默认参数的机制,即我们在调用函数时,如果不传入参数,则使用我们定义的默认参数的值。Python 函数的默认参数必须放在函数参数列表的最后,且 Python 的默认参数可以是任意多个。

Python函数默认参数详解

语法

def func_name(param1, param2 = value){ # 执行语句... return val } func_name(p1, p2) func_name(p1)

参数

参数 描述
def 定义函数所使用的关键字,所有的函数前面都必须使用该关键字。
func_name 函数的名称。
param1 函数的形参 1。
param2 函数的形参 2,函数可以有任意多个形参。
value 函数参数 param2 的默认值。
return 后面接函数的返回值,函数的返回值只能有一个,可以是任意的数据类型。

说明

我们定义了一个函数,函数名为 func_name,该函数有两个参数,其中,第二个参数是一个带默认值的参数,默认值为 value。

接着,在调用该函数时,我们可以传入两个参数,也可以传入一个参数,传入两个参数,那么形参 param1 的值就为 p1,形参 param2 的值就为 p2。

如果,我们调用时,传入一个参数,那么形参 param1 的值就为 p1,形参 param2 的值就为默认值 value。

Python函数多个默认参数

def func_name(param1 = value1, param2 = value2){ # 执行语句... return val } func_name(p1, p2) func_name(p1) func_name()

参数

参数 描述
def 定义函数所使用的关键字,所有的函数前面都必须使用该关键字。
func_name 函数的名称。
param1 函数的形参 1。
param2 函数的形参 2,函数可以有任意多个形参。
value1 函数形参 param1 的默认值。
value2 函数形参 param2 的默认值。
val 函数返回值。
return 后面接函数的返回值,函数的返回值只能有一个,可以是任意的数据类型。

说明

我们定义了一个函数,函数名为 func_name,该函数有两个参数,其中,第一个参数和第二个参数都带默认值的参数,默认值分别为 value1 和 value2。

接着,在调用该函数时,我们可以传入两个参数,也可以传入一个参数,甚至可以不传入任何参数。

案例

Python函数默认参数

Python函数支持默认参数

print("嗨客网(www.haicoder.net)") # Python函数支持默认参数 def my_sum(a, b = 100): num = 0 for i in range(a, b+1): num = num +i return num ret = my_sum(1, 50) print("sum =", ret) ret = my_sum(1) print("sum =", ret)

程序运行后,控制台输出如下:

14_python函数默认参数.png

我们定义了一个函数 my_sum,该函数传入两个参数 a 和 b,该函数实现的是求 a 到 b 之间所有数的和,并通过返回值返回求得的和。

其中,my_sum 函数的第二个参数有一个默认值 100,即,如果我们不传递第二个参数,那么就使用默认的 100。

最后,我们两次调用了 my_sum 函数,第一次调用时,传入了两个参数 1 和 50,因此求出了 1 到 50 的和,第二次调用时,我们只传递了一个参数 1,因此第二个参数使用默认值 100,最后求出了 1 到 100 的和。

因此,当我们定义函数时,如果使用了函数的默认参数,那么有默认参数的参数不传递值时,会使用默认值。

Python函数多个默认参数

Python 函数支持多个默认参数

print("嗨客网(www.haicoder.net)") # Python函数支持多个默认参数 def my_sum(a = 1, b = 100): num = 0 for i in range(a, b+1): num = num +i return num ret = my_sum(10, 50) print("sum =", ret) ret = my_sum(50) print("sum =", ret) ret = my_sum() print("sum =", ret)

程序运行后,控制台输出如下:

15_python函数默认参数.png

我们定义了一个函数 my_sum,该函数传入两个参数 a 和 b,该函数实现的是求 a 到 b 之间所有数的和,并通过返回值返回求得的和。

其中,my_sum 函数的第一个参数和第二个参数都有一个默认值,第一个参数的默认值为 1,第二个参数的默认值为 100,即,如果我们不传递第一个参数,那么就使用默认的 1,如果我们不传递第二个参数,那么就使用默认的 100。

最后,我们三次调用了 my_sum 函数,第一次调用时,传入了两个参数 10 和 50,因此求出了 10 到 50 的和,第二次调用时,我们只传递了一个参数 50,因此第二个参数使用默认值 100,最后求出了 50 到 100 的和,第三次调用时,我们没有传递任何参数,因此第一个参数使用默认的 1,第二个参数使用默认值 100,最后求出了 1 到 100 的和。

Python函数默认参数

Python 函数默认参数,必须放在参数列表最后

print("嗨客网(www.haicoder.net)") # Python函数默认参数,必须放在参数列表最后 def sub(a = 1, b): return a - b ret = sub(1024, 512) print("sub =", ret)

程序运行后,控制台输出如下:

16_python函数默认参数.png

我们定义了一个函数 sub,该函数传入两个参数 a 和 b,其中第一个参数使用了默认参数,而第二个参数没有使用默认参数。因此,程序报错,因为函数的默认参数必须放在参数列表的最后。

Python函数默认参数

Python 函数使用位置参数,参数个数必须一致

print("嗨客网(www.haicoder.net)") # Python函数使用位置参数,参数个数必须一致 def sub(a, b): return a - b ret = sub(b = 512) print("sub =", ret)

程序运行后,控制台输出如下:

17_python函数默认参数.png

我们定义了一个函数 sub,该函数传入两个参数 a 和 b,我们使用位置参数调用该函数时,实参传递了一个,因此,实参和形参的个数不对应,程序报错。

Python函数默认参数总结

Python 的函数参数,还为我们提供了默认参数的机制,即我们在调用函数时,如果不传入参数,则使用我们定义的默认参数的值。

Python 函数的默认参数必须放在函数参数列表的最后,且 Python 的默认参数可以是任意多个。Python 函数默认参数语法:

def func_name(param1 = value1, param2 = value2){ # 执行语句... return val } func_name(p1, p2) func_name(p1) func_name()