发表于: 2018-03-06 23:44:05
2 857
- 今天学到的东西: 位置参数 , 默认参数 , 可变参数 ,关键字参数 和 命名关键字参数。(断断续续看了两天才看明白。。)
1.位置参数
首先定义函数的方法是def 写一个求x²的函数
print x * x
x 就是其函数的参数 而且是必选参数,在调用函数时必须传入一个参数。
在打印一个 x³,4次方 5 次方 等等时 就可以用
def weizhit(x, n):
sum = 1
while n>0:
n = n-1
sum = sum * x
returen sum
2.默认参数
就是 给定 n 一个 默认值 使得 传给 n 值时 n 等于传入值 未传n时 使用 默认值 写法
def moren(x, n=2):
sum = 1
while n>0:
n = n-1
sum = sum * x
returen sum
调用moren(4,3)返回 48 调用 moren(4) 返回 16
*默认参数必须指定一个不变的值 例子:
def moren(L=[]):
L.append('end')
return L
当正常调用时 moren(1, 2, 3) 返回 [1, 2, 3, 'end']
当调用 moren(L=[])时 ,第一次没问题返回 ['end'] 当再次调用moren(L=[])时 返回 ['end', 'end'] 出错。
改正:
def moren(L=[None]):
if L is None:
L = []
L.append('end')
return L
3.可变参数 传入参数 是可变的 可以是一个 list或tuple
kebian([1 ,2, 3]) ,kebian((1, 2, 3, 4)) 简化写法kebian(1, 2, 3) kebian(1, 2, 3, 4)
也可以将 list, tuple 先打包 一起传入,但必须在参数名前加* 比如 计算 a²+b²+.........+n² 的和
def kebian(*L):
s=1
for n in L:
sum = sum + n*n
return sum
调入 kebian(1,2) 返回 5 随意调入 可变参数 。。
4.关键值参数
就是传入一个 dict 除了 必选函数的传入可 任意传入 key-value
def gjz(name , age, **zidian):
print(name, age, zhidian)
调用 gjz('xiaobai',24,city = 'wuhan' jiaxiang = 'hebei') 返回 ‘xiaobai’24 {'city' :'wuhan' ,' jiaxiang': 'heibei' }
参数 组合
def d1(a,b,c=2,*tu,**di):
print('a' = a,'b' = b,'c' = c ,'tu'=tu, 'di' = di)
传入
>>> d1(2,3)
a = 2, b = 3, c = 2, tu = (), di = {}
>>>d1(2, 3, 4)
a = 2, b = 3, c = 4, tu = (), di = {}
>>>d1(2, 3, 4, 'Q', 'W')
a = 2, b= 3, c = 4, tu = ('Q', 'W'), di = {}
>>>d1(2, 3, 4, 'Q', 'W',x = 11)
a = 2, b= 3, c = 4, tu = ('Q', 'W'), di = {'x' : 11 }
写不完了.............
评论