定义
#函数,即方法,提高代码的复用性
函数的声明
无参数无返回值函数,其实默认返回为空
def hello():
print("hello")
有默认参数,有返回值函数
def welcome(name,country ="china"):
return name,country
无参数,直接返回函数
def test():
return
r = hello()
# print("没写return",r) #没写return None
# print('return多个值得时候',welcome('小黑')) #return多个值得时候 ('小黑', 'china')
# print('return 后边什么也不写的时候',test()) #return 后边什么也不写的时候 None
变量
局部 变量,函数里边定义的变量是局部变量,只在函数内部生效,
全局变量,在当前Python文件内生效
如果想在函数里边修改全局变量,则需要在函数里边重新用global声明一下
a= 100 #全局变量 代码中尽量少用全局变量,因为全局变量占内存,除非Python文件停止运行才会释放,另外全局变量不安全
def test():
global a
a = 1 #局部变量,函数的作用域,会默认现在方法体内找,如果找不到,再取外边找,
print(a) #如果想在方法体内改变全局变量,需要前边加global 声明一下
test()
print(a)
函数参数
必填参数(位置参数)
默认值参数
可选参数,参数组
def send_msg(*phones):#可选参数,接收到的是一个元组
print(phones)
# send_msg() #()
# send_msg(110) #(110,)
# send_msg(110,120) #(110, 120)
# send_msg(110,120,120,1330000) #(110, 120, 120, 1330000)
关键字参数
def send_sms(**phones):#关键字参数,接收到的是一个字典
print(phones)
send_sms()#{}
send_sms(a=1,b=2,name='abc')#{'a': 1, 'b': 2, 'name': 'abc'}