函数结构
函数是def开头,这是固定死的,函数名是可以随便写,()这里面试可以写内容也可以不写,:这个是必须要的结尾,函数体需要缩进
def 函数名 ():
函数体
定义一个函数:fun
调用一个函数需要函数名字+()
#创建一个函数
def fun():
print("学习函数")
print("学习python")
#调用上面 创建的fun函数
fun()
#调用后运行结果:学习函数
# 学习python
函数的返回值
函数里面使用返回值是return
#定义一个函数
def fun():
#直接使用return进行返回
return "学习函数","学习python"
#调用函数需要一个接收参数,这里的这种返回已可以不用
r1=fun()
#输出打印,输出的是一个元祖
print(r1) #('学习函数', '学习python')
函数体里面有return,遇到了就是函数结束,return下面的代码不会执行,
return的返回值:
"""
return后面什么都不写,或者函数中没有return,则返回的结果是None
"""
#定义一个函数
def fun():
#直接使用return进行返回
return
#调用函数需要一个接收参数,这里的这种返回已可以不用
r1=fun()
#输出打印,输出
print(r1) # None
"""
return后面写了多个结果,,返回给调用者一个tuple(元组),调用者可以直接使用元组的解构获取多个变量
"""
#定义一个函数
def fun():
#直接使用return进行返回
return "学习函数","学习python"
#调用函数需要一个接收参数,这里的这种返回已可以不用
r1,r2=fun()
#输出打印,输出
print(r1,r2) # 学习函数 学习python
"""
return后面写了一个值,返回给调用者这个值
"""
#定义一个函数
def fun():
#直接使用return进行返回
return "学习函数"
#调用函数需要一个接收参数,这里的这种返回已可以不用
r1=fun()
#输出打印,输出
print(r1) # 学习函数
函数的参数:
形参与实参
"""
函数的参数:形参与实参
"""
def fun(name): #这里的name是形参
print("学习 %s" %(name))
fun("python") #这里执行函数里面的传的python就是实参,如:python=name
#调用的后的结果:学习 python
位置参数
"""
函数的参数:位置参数
形参与实参一一对应
"""
def fun(name,sex,hobby): #这里的是形参
print("我喜欢: %s,性别:%s,爱好:%s" %(name,sex,hobby))
fun("少妇","女","打游戏")
#调用的后的结果:我喜欢: 少妇,性别:女,爱好:打游戏
"""
举例:2个数相加
"""
def f(a,b):
c=a+b
return c
sum=f(5,6)
print(sum) #11
关键字参数
"""
函数的参数:关键字参数
传参的时候给形参赋值
"""
def fun(name,sex,hobby): #这里的是形参
print("我喜欢: %s,性别:%s,爱好:%s" %(name,sex,hobby))
fun(name="少妇",sex="女",hobby="打游戏")
#调用的后的结果:我喜欢: 少妇,性别:女,爱好:打游戏
混合参数
"""
函数的参数:混合参数
就是把位置参数和关键字参数一起结合使用
"""
def fun(name,sex,hobby): #这里的是形参
print("我喜欢: %s,性别:%s,爱好:%s" %(name,sex,hobby))
#混合参数一定要记住:关键字参数一定在位置参数后面。
fun("少妇","女",hobby="打游戏")
#调用的后的结果:我喜欢: 少妇,性别:女,爱好:打游戏
默认参数
"""
函数的参数:默认参数
默认参数在形参的时候就赋值,如果不传就使用默认的,传了就使用新的
"""
def fun(name,sex,hobby=" 看书"): #这里的是形参
print("我喜欢: %s,性别:%s,爱好:%s" %(name,sex,hobby))
#默认参数这里在执行的时候不传入已可以。
fun("少妇","女")
#调用的后的结果:我喜欢: 少妇,性别:女,爱好: 看书
#传入新的参数
def fun(name,sex,hobby=" 看书"): #这里的是形参
print("我喜欢: %s,性别:%s,爱好:%s" %(name,sex,hobby))
#默认参数这里在执行的时候不传入已可以。
fun("少妇","女","看球")
#调用的后的结果:我喜欢: 少妇,性别:女,爱好:看球
动态位置参数
"""
动态位置参数
"""
def fun(*args):
print("我喜欢:", args)
#传入的参数会组装成一个元祖放在args
fun("少妇","女人","看球")
#调用的后的结果:我喜欢: ('少妇', '女人', '看球')
"""
计算
"""
def f(*args):
n=0
for i in args:
n+=i
return n
a=f(8,9)
print(a)
动态接收关键字参数
"""
动态关键字参数
"""
def fun(**kwargs):
print("我喜欢:", kwargs)
#传入的参数会组装成一个字典放在kwargs
fun(name="少妇",name1="女人",name2="看球")
#调用的后的结果:我喜欢: {'name': '少妇', 'name1': '女人', 'name2': '看球'}
动态位置参数+动态关键字参数
"""
动态位置+动态关键字参数
"""
def fun(*args,**kwargs):
print("我喜欢:",args, kwargs)
#传入的参数会组装成一个字典放在kwargs
fun("python","java",name="少妇",name1="女人",name2="看球")
#调用的后的结果:我喜欢: ('python', 'java') {'name': '少妇', 'name1': '女人', 'name2': '看球'}