一、函数的返回值
"""
函数的返回值
函数返回多个值时,结果为元组
"""
def fun1 ( num) :
odd= [ ]
even= [ ]
for i in num:
if i % 2 :
odd. append( i)
else :
even. append( i)
return odd, even
list = [ 2 , 3 , 4 , 5 , 6 , 7 , 8 , 99 ]
print ( fun1( list ) )
"""
函数的返回值
1、如果函数没有返回值,return可以省略不写
2、函数的返回值,如果是1个,直接返回类型
3、函数的返回值,如果是多个,返回的结果为元组
函数在定义的时候是否需要返回值,需要视情况而定
"""
def fun2 ( ) :
print ( "hello" )
def fun3 ( ) :
return "hello"
def fun4 ( ) :
return "hello" , "python"
fun2( )
print ( fun3( ) , "\n" , fun4( ) )
二、函数的参数定义
"""
函数的参数定义
函数定义默认值参数,形参需要设置默认值,只有与默认值不符(需要修改形参的值)的时候才需要传递实参
"""
def fun ( a, b= 10 ) :
print ( a, b)
fun( 1 )
fun( 1 , 2 )
"""
函数的参数定义
1、个数可变的位置参数 个数可变的位置参数只能有1个
定义函数时,可能无法事先确定传递的位置实参的个数,使用可变的位置参数
使用*定义个数可变的位置参数
结果为一个元组
2、个数可变的关键字参数 个数可变的关键字参数只能有1个
定义函数时,无法事先确定传递关键字的个数时,使用可变的关键字形参
使用**定义个数可变的关键字形参
结果为一个字典
在一个函数的定义过程中,既有个数可变的关键字形参,也有个数可变的位置形参
要求,个数可变的位置形参,放在个数可变的关键字形参之前
def fun(**args1,*args2):
pass
"""
def fun1 ( * args) :
print ( args)
def fun2 ( ** args) :
print ( args)
fun1( 1 , 2 , 3 )
fun2( a= 1 , b= 2 , c= 3 )
def fun3 ( a, b, c) :
print ( 'a=' , a)
print ( 'b=' , b)
print ( 'c=' , c)
fun3( 11 , 22 , 33 )
list = [ 11 , 22 , 33 ]
fun3( * list )
fun3( b= 11 , c= 33 , a= 22 )
dic= { 'a' : 100 , 'b' : 200 , 'c' : 300 }
fun3( ** dic)
def fun4 ( a, b, * , c, d) :
print ( 'a=' , a)
print ( 'b=' , b)
print ( 'c=' , c)
print ( 'd=' , d)
fun4( 1 , 2 , c= 3 , d= 4 )
def fun5 ( a, b, * , c, d, ** args) :
pass
def fun6 ( * args1, ** args2) :
pass
def fun7 ( a, b= 10 , * args1, ** args2) :
pass