一、定义函数 def 函数名():
函数体代码
例:
#定义函数
def email():
print('send email')
#调用执行函数
email()
二、函数的返回值
def email():
print("send email")
return "发送成功" #没有return,默认返回None
ret = email() #函数return后面是什么值,ret等于返回值
print(ret)
注意:一旦遇到return,函数内部return以下的代码不再执行。
三、函数的普通参数
def email(address): #address为形式参数
print(address)
return True
ret = email('123@qq.com') #调用执行传值,为实际参数
#传参,默认是按顺序传值,也可以指定形参传入实参,就可以不按顺序
四、函数的默认参数
#注意:有默认值的参数要放在后面
def email(name, address="456@163.com"): #name、address为形式参数,address有默认值为456@163.com
print(name, address)
return True
五、函数的动态参数
1)简单的动态参数
#注意:加上一个*号,即可成为动态形式参数,转换元组;加上两个**号时,转换成字典
def email(*addr, **address):
print(addr)
print(address)
email(11, 22, 33, k1 = 123, k2 = 456) #在动态函数参数中,可以传入多个参数
结果:
(11,22,33)
{'k1':123, 'k2': 456}
2)为动态参数传入列表、字典或元组
2.1)实参传入列表
def f1(*args):
print(args)
li = [11,22,33,44] #列表
f1(li) #结果为[11,22,33,44]
f1(*li) #结果为(11,22,33,44),注意在传入实参时,加入*号
2.2)实参传入字典
def f2(**kwargs):
print(kwargs)
dic = {'k1':789} #传入字典
f2(dic) #结果报错
f2(**dic) #结果为{'k1':789},注意在传入实参时,加入**号
六、全局变量、局部变量
P = "python" #p为全局变量,变量名一般大写,可以共享使用
def func():
a = 123 #a 为局部变量,变量名一般小写,只能在func()函数中使用
#如果在函数内想修改全局变量,则需要使用关键字global
global P
P = "java" #全局变量P的值被修改为"java"
print(a) #结果为123
print(P) #func()函数可以使用全局变量