函数的定义,函数传参,函数的调用
1、函数的定义,及函数的调用
def hello(): #定义函数 def:函数 hell0:函数名 pass #函数体 hello() #调用函数
2、函数传参
a、只有形参、实参,没有返回值的情况 def hello1(password): #password 是拿参数的,如果这里有值必须要传值进来的 password:形参,形式参数 pass #函数体 hello("password") #调用函数 "password":实际参数
b、有形参、实参、返回值的情况 def hello1(password): #password 是拿参数的,如果这里有值必须要传值进来的 password:形参,形式参数 print(1) #函数体 return False #返回值 A=hello("password") #需要有人接住函数里面的返回值
必填参数 eg(file_name)就是此函数必填参数 def open_def(file_name, content=None): if content: write_file() else: read_file() open_def("a.txt", "name")
默认值参数 eg、(content=None)是此函数默认值参数,非必参数参数可不传,默认时为None def open_def(file_name, content=None): if content: write_file() else: read_file() open_def("a.txt", "name")
参数组:参数:传多个参数,使用一个形参来接 *args eg: 传参:send(100,200,'你好') 形参:*args def send(*args): for i in args: print('发短信给%s'%i) send(100,200,'你好') ''' 返回: 发短信给100 发短信给200 发短信给你好 '''
关键字参数 它不是必须,不限制参数的个数 def send(**kwargs): # for i in info: print(kwargs) send() send(ds='你好1') send(wy='你好',fd='幸福') ''' 返回 {} {'ds': '你好1'} {'wy': '你好', 'fd': '幸福'} '''
使用拆包方法传参 def hhh(name,age,sex): print(name) print(age) print(sex) d={'name':'xh','age':18,'sex':'nan'} hhh(**d) #拆包方法变为name=xh,age=18, sex=nan l=['xh',18,'nan'] hhh(*l) #拆包方法变为name传'xh',age传18,。。。
参数的位置顺序:
按照1->2->3->4 1、必填参数 2、默认值参数 3、参数组 4、关键字参数
注意:使用顺序为:必填参数、默认值参数、可变参数、关键字参数
eg:def t1(word,name="None",*args,**kwargs)
函数传参
1、(*args) : *可变参数,多个参数时可写*名字,可以不传 ,可以传多个参数
2、(name="None") 可以不传,默认值参数
3、(**kwargs) 字典格式 key:values格式 关键字参数 (**info): kwargs可以随意起名字
4、(word) 位置参数,必传参数
3、接参
return 作用 1、函数遇到return,函数立即结束,不继续往下执行 2、return 返回数据 3、如果一个函数没有写返回值,返回的就是None 4、如果函数有多个返回值,那么返回的是一个元组,可以使用一个人来接,可以使用3个人来接 eg: def test(): print("hello") a=test() print(a) 没有return返回值,默认返回为None def test2(): return 1,2,3 a=test2() #一个人来接 a,b,c=test2() #可以使用一个人来接,可以使用3个人来接(3个人来接) print(a,b)
4、函数的变量
变量分为两种:1、全局变量,2、局部变量 1、全局变量:使用范围是这个python文件 2、局部变量:使用范围是在函数内部使用 找变量顺序:首先在函数内部找,再到全局变量里面找 变量作用域:全局变量是这个python文件,局部变量是在函数内部使用 注: 1、改变全局变量时list、dict、set不需要用global来声明了 2、str、int、float、tuple、bool 需要使用global来声明