返回值

遇到return就结束了函数的运行
return variable返回值
不写return为返回空值None

return a, b可以返回多个值 接收的时候可以使用两个变量接收a , b= function()
多个普通变量赋值可以通过 a,b,c = 1,2,3也可以写为a=b=c=1

序列解包

d = 1,2,3 d 为序列,可以通过a,b,c = d来解包为单独三个变量中

参数

必须参数

必须要传递的参数

关键字参数

function(x=12, y=13)
在函数值传递的时候告诉python你的实参是给哪个形式参数传递值的。
这种方法可读性更强。

默认参数

在定义函数的时候可以通过给形式参数定义默认值,调用函数的时候不传值,参数就为默认值
def function_name(a=123, b='hello'): pass
形式参数定义的时候,普通形式参数必须都定义在默认参数的前面

可变(长度)参数

如果为可变参数def function_name(*param): pass
调用函数的时候 function_name(1,2,3,’a’) 这些实参会变成元祖的形式传给*param。

问题:def function_name(a,*param,b)
那么调用此函数的时候不能给b赋值,b必须使用关键字参数的形式指定实参
所以通常如果需要用到可变长度参数,都会放到参数列表的最后

关键字可变参数

想实参传入关键字可变参数
def function_name(**param) : pass
接收到的param为字典数据类型

  1. def city_population(**param):
  2. for key,value in param.items():
  3. print(key+":"+str(value))
  4. city_population(shanghai=13, guangdong=45, beijing=25)