函数的参数
1、函数的参数分为位置参数、默认参数、可变参数、关键字参数、命名关键字参数
2、以自定义power()函数为例,这是一个计算X的N次方的函数
def power(x,n):
s=1
while n>0:
n=n-1
s=s*x
return s
a=input()
b=input()
A=int(a)
B=int(b) 注意:input()函数返回的是str类型,如果需要变成整数型,需要用int()函数完成。
m=power(A,B)
print("m=",m)
此处,x,n都是位置参数。
3、当 定义def power (x,n=2)时,第二个参数的默认值设定为2了,当输入power(5)时,相当于输入power(5,2)但如果计算5的三次方时,就应该输入power(5,3)。
可变参数
函数在调用的时候需要知道参数的个数,可变参数指的是参数的个数是可变的。如要计算a2 + b2 + c2 + ……时,不知道参数的个数。此时可定义可变参数,即在参数前加星号*。
#-*- coding: utf-8 -*-
def calc(numbers):
sum=0
for n in numbers:
sum=sum+n*n
return sum
L=[]
n = int(input('times'))
for i in range(n): range()函数指的是创建一个序列数例如range(3)即[0,1,2]
L.append(int(input()))
#M=int(L)
print(L)
W=calc(L)
print('L=',W) 此函数实现了可以人工控制输入变量个数。
关键字参数(通过添加两个星号**表示)
1、它可以扩展函数的功能。比如,在person
函数里,我们保证能接收到name
和age
这两个参数,但是,如果调用者愿意提供更多的参数,我们也能收到。例如:
>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
2、**extra
表示把extra
这个dict的所有key-value用关键字参数传入到函数的**kw
参数,kw
将获得一个dict,注意kw
获得的dict是extra
的一份拷贝,对kw
的改动不会影响到函数外的extra
。
最后说明:所以,对于任意函数,都可以通过类似func(*args,
**kw)
的形式调用它,无论它的参数是如何定义的。
命名关键字参数
定义如下:def person(name, age, *, city, job)