"""
函数的创建和调用:
1.函数
执行特定任何以完成特定功能的一段代码
2.为什么需要函数
2.1复用代码
2.2隐藏实现细节
2.3提高可维护性
2.4提高可读性,便于调试
3.函数的创建
def 函数名([输入参数]):
函数体
[return XXXX]
"""
def calc(a,b):
c=a+b
return c
result=calc(10,20)
print(result)#30
"""
函数的参数传递
函数调用的参数传递:
1.位置实参
根据形参对应的位置进行实参传递
2.关键字实参
根据形参名进行实参传递
"""
def calc(a,b):
c=a+b
return c
res=calc(b=10,a=20)
print(res)#30
#实参名称与形参名称可以不一致
def fun(arg1,arg2):
print('arg1',arg1)
print('arg2',arg2)
arg1=100
arg2.append(10)
print('arg1=', arg1)#arg1= 100
print('arg2=', arg2)#arg2= [22, 33, 44, 10]
return
n1=11
n2=[22,33,44]
print('n1=',n1)
print('n2=',n2)
fun(n1,n2)
print('n1=',n1)
print('n2=',n2)
"""
在函数调用用过程中,进行参数的传递,
如果是不可变对象,在函数体的修改不会影响实参的值,arg1的修改不会影响n1的值,
如果是可变对象,在函数体的修改,会影响到实参的值,arg2的修改会影响n2的值
"""
"""
函数的返回值
函数返回多个值,结果为元组
函数返回值的三种情况:
(1)如果函数没有返回值【函数执行完毕后不需要给调用处提供数据】return可以省略不写
(2)函数的返回值如果是一个直接返回类型
(3)函数的返回值如果是多个,直接返回元组
"""
def fun(num):
even=[]
odd=[]
for i in num:
if i%2==0:
even.append(i)
else:
odd.append(i)
return odd,even
lst=[10,29,34,23,44,53,55]
print(fun(lst))#([29, 23, 53, 55], [10, 34, 44])
#第一种情况
def fun1():
print('hello')
fun1()
#第二种情况
def fun2():
return 'hello'
res=fun2()
print(res)
#第三种情况
def fun3():
return 'hello','world'
print(fun3())#('hello', 'world')
#函数在定义时,是否需要返回值视情况而定
"""
函数的参数定义:
函数定义时,给形参设置默认值,只有与默认值不符时才需要传递实参
"""