python
python函数及其参数
位置参数
假如说我们需要计算一个x2的函数
def power(x):
return x * x
对于这个power(x)
函数,参数x
就是一个位置参数
而我们在调用这个power
函数时,就必须向其传入有且仅有的一个参数x
>>> power(3)
9
>>> power(4)
16
以上是计算x2的,那计算xn呢
代码如下:
def power2(x,n):
s = 1
while n > 0:
n = n-1
s = s * x
return s
而这个power2
函数,则可以计算xn,
>>> power2(5,3)
125
>>> power2(2,3)
8
改进后的power2
函数,就有两个参数:x
和n
,这两个参数都是位置参数,调用函数时,传入的两个值必须按照顺序依次赋给x
和n
。
默认参数
顾名思义,默认参数就是在参数中给它初始化,
例如:计算x2,就可以写成power(x,n=2)
,这样我们在调用这个函数power(5)
时,就相当于调用power(5,2)
在我们使用默认参数时,特别需要注意的是:
- 必选参数必须在前,默认参数在后,否则python解释器会报错
- 在设置默认参数时,函数有多个参数,把变化大的参数放在前面,变化小的参数放在后面。变化小的参数就可以作为默认参数
使用默认参数的好处就是能够降低调用函数的难度
小结
默认参数降低了函数调用的难度,而一旦需要更复杂的调用时,又可以传递更多的参数来实现。无论是简单调用还是复杂调用,函数只需要定义一个,这就是默认参数的优点之一。
在有多个默认参数时,调用的时候,既可以按照顺序提供默认参数,也可以不按顺序提供默认参数
- 当不按顺序提供默认参数时,需要把参数名字写上,此时其他的默认参数才可以继续使用默认值
顺序调用
>>> def student(name,gender,age=19,city="北京"):
... print('name',name)
... print('gender',gender)
... print('age',age)
... print('city',city)
...
>>> student('何曲豆','男')
name 何曲豆
gender 男
age 19
city 北京
>>>
非顺序调用
>>> def student(name,gender,age=19,city="北京"):
... print('name',name)
... print('gender',gender)
... print('age',age)
... print('city',city)
...
>>> student('小芊芊','女',city="北京")
name 小芊芊
gender 女
age 19
city 北京
>>>
坑点:
定义默认参数时,默认参数必须指向不变对象!!!
.
>>> def add_end(L=[]):
... L.append('END')
.