第一章:函数
1.函数的参数
1)可变参数
函数接收参数的个数是可变的,仅仅在参数前面加了一个号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数:
第一种方式:所以Python允许你在list或tuple前面加一个号,把list或tuple的元素变成可变参数传进去:
def sum(*arg):
s = 0
for i in arg:
s= s+i*i
return s
list = [1,2,3,4]
number = sum(*list)
number
Out:
30
第二种方式:传入个数不定的参数
def sum(*arg):
s = 0
for i in arg:
s= s+i*i
return s
number = sum(1,2,3)
number
Out:
14
number = sum()
number
Out:
0
2)关键字参数
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
def person(name, age, **arg):
print('name is:',name , " and age is:", age)
person('Michael', 3)
Out:
name is: Michael and age is: 3
也可以传入任意个参数:
def person(name, age, **arg):
print('name is:',name , " and age is:", age , arg)
person("bob",23, city="guangzhou")
Out:
name is: bob and age is: 23 {'city': 'guangzhou'}
换一种写法,结果是一样的
extra = {'city': 'Beijing', 'job': 'Engineer'}
person('Jack', 24, city=extra['city'], job=extra['job'])
person('Jack', 24, **extra)
name is: Jack and age is: 24 {'city': 'Beijing', 'job': 'Engineer'}
name is: Jack and age is: 24 {'city': 'Beijing', 'job': 'Engineer'}