如何定义一个函数呢?
#定义一个函数最简单的例子
#使用def关键字
def myFunc(a):
if a > 0:
return a
else:
return 'number is too small'
res = myFunc(1)
res2 = myFunc(-1)
print(res)
print(res2)
#输出 1
#输出 number is too small
# 参数
### 普通参数
- 没什么好说的形参和实参一一对应
### 默认参数
- def 函数名(参数1,......,参数n=默认值)
- 当参数n没传入时,自动调用默认值
### 关键字参数
- 关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值,使用关键字参数允许函数调用时参数的顺序与声明时不一致
### 收集参数
- 也叫不定长参数,把没有位置,不能喝定义时的参数位置相应的参数,放在一个特定的数据结构中,可以和其他参数一起用,可以为空
- 定义def fanc(*args)
- 调用fanc(p1,p2,p3,......)
### 收集参数之关键字收集参数
- 把关键字参数按字典格式存入收集参数
- 定义:def func( **kwargs):
- 调用:func(p1=v1,p2=v2......)
- 例子:
def stu( **kwargs):
print("自我介绍:")
print(type(kwargs)) ##type()返回对象的类型
for k,v in kwargs.items():
print(k,":",v)##访问字典
stu(name="bijiaxing",age=25,work="pythoner")
def addr(*args):
for v in args:
print(v)
l = ['aaa','bbb','ccc']
addr(*l)#list 数据解包
#输出
自我介绍:
<class 'dict'>
name : bijiaxing
age : 25
work : pythoner
aaa
bbb
ccc
### 参数的混合使用(优先级)
- 普通和关键字优先,定义时一般找普通参数 > 关键字参数 > 收集参数tuple > 收集参数dict
### 返回值
- 用return返回内容,没有返回值会自动返回None,推荐无论有没有返回值都以return结束
### 函数文档
- 函数的文档作用是对当前函数提供相应的参考信息
- 写法:
在函数内部开始第一行使用三字符串定义符,一般有特定格式
- 例子:
def stu(*args):
'''这是文档'''
pass
help(stu)
stu.__doc__
#输出
Help on function stu in module __main__:
stu(*args)
这是文档
Out[18]:
'这是文档'