对于函数,简单理解为完成某项工作的代码块,类似于积木块,可以反复使用。
1.创建和调用函数
创建函数语法格式为 def functionname(parameter):
调用函数语法格式为 functionname(paremeter)
2.参数传递
①形参和实参:定义或创建函数时,函数参数为形参;调用函数时,函数参数为实参。(这样理解,在定义函数时,不知道具体的输入是什么,这时的参数只是个形式,相当于自变量x;调用函数时,需要给定具体的输入,这时的参数就有了具体值,相当于自变量x有了具体的值)
②位置参数:即调用时参数的数量和位置必须和定义时参数的数量和位置一样。
③关键字参数:关键字参数是调用函数时使用定义函数时的形参的名字来确定输入的参数值。这样就不需要和形参的位置一样了。(前提是调用时要把形参的名字写对)
④为参数设置默认值: 格式为def functionname(...,parameter n=defaultvalue n): ,这样调用时就可以不输入默认参数的值了
注:定义函数时,指定默认参数的形参必须在所有参数的最后,否则将产生语法错误;另外,形参的默认参数必须指向不可变对象
⑤可变参数: 有两种形式,一种是 *paremeter,另一种是 **parameter。其中 *parameter这种形式表示接收多个实参并将其放到一个元组中; **parameter这种形式表示接收任意多个类似关键字参数一样显示赋值的实参,并将其放到一个字典中。
⑥局部和全局变量:在函数内部定义并使用的变量为局部变量,只在函数内部有效;全局变量为在函数外定义的变量。
注:在函数内部,使用 global 关键字后,该变量也变成全局变量。
3,匿名函数
匿名函数(lambda)的首要用途是简单短小的函数,格式为
result = lambda [arg1,arg2,...]:expression 其中expression为实现具体功能的表达式,将应用参数
例如: r=10 area=lambda r:math.pi*r*r 调用时直接 area(r)即可。