一.函数的参数
1.位置参数(按参数位置赋值)
def student(name,age,school):
print('姓名:',name,'\n'+'年龄:',age,'\n'+'学校:',school) #用,连接有空格,用+连接没有空格,后边跟的是数字时+表示数学的加
student('liu',18,'sdu')
2.默认参数
同一所学校不需要反复传入学校参数时可以用默认参数
def student(name,age,school='sdu'):
print('姓名:',name,'\n'+'年龄:',age,'\n'+'学校:',school)
student('liu',18)
student('li',18,'pku') #改变了默认参数的值
注意点:默认参数L也是一个变量,如果改变了L的内容,下次调用时默认参数的值就会变化
def add_end(L=[1,2]):
L.append('END')
return L
print(add_end())
print(add_end())
print(add_end([1,2,3]))
print(add_end())
def add_end(L=None):
if L==None:
L=[1,2]
L.append('end')
return L
print(add_end())
print(add_end())
print(add_end([1,2,3]))
print(add_end())
3.关键字参数
使用关键字参数时可以不考虑参数的顺序,比位置参数更方便,不易出错
def student(name,age,school):
print('姓名:',name,'\n'+'年龄:',age,'\n'+'学校:',school)
student(age=18,name='liu',school='sdu')
4.可变参数(收集参数)
用于处理比声明函数时的参数更多的参数时
用法一:args被看做一个tuple,可以用for循环访问
def student(*args):
for item in args:
print(item)
student('liu',18,'sdu')
def student(*args):
for item in args:
print(item)
l=['liu',18,'sdu'] #l=('liu',18,'sdu')也可以
student(*l)
用法二:关键字可变参数
关键字按字典格式存入可变参数,访问kwargs时按字典格式访问
def student(**kwargs):
for k,v in kwargs.items():
print(k,':',v)
student(name='liu',age=18,school='sdu')
def student(**kwargs):
for k,v in kwargs.items():
print(k,'=',v)
L={'name':'liu','age':18,'school':'sdu'}
student(**L)
5.混合使用
def student(name,gender,school='sdu',*args,**kwargs):
print('我叫{0},我是{1}'.format(name,gender))
print('我来自{}'.format(school))
for i in args:
print(i)
for k,v in kwargs.items():
print(k,':',v)
student('liu','女生','sdu','hello','nice to meet you',age=18,hobby='reading',country='China')
二.函数文档
1.使用help查看
def func(a,*args):
'这是函数文档'
pass
help(func)
2.查看函数文档
def func(a,*args):
'这是函数文档'
pass
print(func.__doc__)