为什么要用函数?
解决代码重用问题
统一维护
程序的组织结构清晰,可读性强
函数:先定义后使用
1.内置函数 built-in function eg:sum max len
2.自定义函数:定义有参函数 定义无参函数 定义空函数
函数的形式:
def 函数名(arg1,arg2,arg3): #arg参数可选
'描述信息'
函数体
return 0 #返回值
定义有参函数
def bar(x,y): 括号内带有参数称为有参函数
print(x)
print(y)
函数的参数:
def foo(x,y): #形式参数:在函数定义阶段,括号内定义的参数
foo (1, 2) #实际参数:在函数调用阶段,括号内定义的参数
从实参的角度分析:
1.按位置传值 eg:foo(1,2)
2.按关键字传值 eg:foo(x=1,y=2)
3位置传值和关键字传值混合用(注意:按位置传值必须在按关键字传值的前面;对于一个形参只能赋值一次) eg:foo(1,y=2)
从形参的角度分析:位置参数必须传值 默认参数必须放在位置参数的后面
def foo(*args):
def foo(x,*args,y=1):*args要放到位置参数后面 *args返回的是一个元组的形式
def foo(x,**kwargs):**kwargs返回的是一个字典的形式
def foo(x,*args,**kwargs):
定义无参函数
def foo():
'foo function'
print('from the foo')
print(foo.__doc__)
定义空函数
def auth():
pass
函数的调用
语句形式:foo() #定义时无参,调用也无参
bar(1,2) #定义时有参,调用时需要传参
表达是形式:res=10*my_sum(1,2)
函数调用作为另外一个函数的参数:print(my_sum(1,2))
def function(x,y): # 三元运算符
res=x if x > y else y
return res
hehe = function (1, 2)
print (hehe)
函数的返回值可以是任意类型
没有return--->None
return 1--->1 返回的是这个值
return 1,2,3--->(1,2,3) 返回的是元组