常见的几个python函数问题总结
1、传递参数对象类型
首先要看参数的类型,有可变类型和不可变类型。比如列表就是可变类型,元组就是不可变类型。
当参数为不可变类型时
def ChangeInt( b ):
b = 10
print(b) #10
b = 2
ChangeInt(b)
print( b ) #2
当参数为可变类型时
def ChangeInt( b ):
b[0]=2
print(b) #[2,2]
b = [1,2]
ChangeInt(b)
print( b ) #[2,2]
2、调用函数时可使用的正式参数类型
分为:必需参数、关键字参数、默认参数、不定长参数
必需参数:须以正确的顺序传入函数。调用时的数量必须和声明时的一样
def printme( str ):
print (str)
return
#调用printme函数
printme(x) #x为必需参数
关键字参数:允许函数调用时参数的顺序与声明时不一致
def printme( str ):
print (str)
return
#调用printme函数
printme( str = “python”) #str = “python” 为关键字参数
默认参数:如果没有传递参数,则会使用默认参数
def info( name, age = 18 ): #age = 18为默认参数
print ("名字: ", name)
print ("年龄: ", age)
return
不定长参数:一个函数能处理比当初声明时更多的参数
def printinfo( arg1, vartuple ): #**一个默认传入元组**
print ("输出: ")
print (arg1)
print (vartuple)
printinfo( 70, 60, 50 )
def printinfo( arg1, vardict ): #两个默认传入字典
print ("输出: ")
print (arg1)
print (vardict)
printinfo(1, a=2,b=3)
3、匿名函数lambda
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
sum = lambda arg1, arg2: arg1 + arg2
print ("相加后的值为 : ", sum( 10, 20 ))
4、退出return
return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。
def sum( arg1, arg2 ):
total = arg1 + arg2
print ("函数内 : ", total) #返回30
return total
total = sum( 10, 20 )
print ("函数外 : ", total) #返回30
def sum( arg1, arg2 ):
total = arg1 + arg2
print ("函数内 : ", total) #返回30
return
total = sum( 10, 20 )
print ("函数外 : ", total) #返回NONE