定义函数:
1、函数代码块以def关键词开头,后接函数标识符名称和括号();
2、函数的第一行语句可以选择性的使用文档字符串,用于存放函数说明;
3、函数内容一冒号开始,并且缩进;
4、return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
参数类型:
1、必传参数:又叫位置参数,调用时的数量必须和声明时的一样:
2、默认值参数:调用函数时,缺省参数的值如果没有传入,则被认为是默认值:
3、可变参数:又叫不定长参数,当需要函数能处理比当初声明时更多的参数时,只需要在形式参数前加星号(*),调用时非必传,不论是否有传入参数,都作为一个元组的类型传入,如果不传入参数,则实参为一个空的元组
运行结果:
4、关键字参数:使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为Python解释器能够用参数名匹配参数值;调用函数传参时使用key-value的形式,不论是否有传入参数,都作为一个字典类型传入
5、必传参数、默认值参数、可变参数、关键字参数同时使用:
运行结果:
总结:调用参数时,如果一开始就以key-value的形式传入参数,后面的参数也只能是key-value的形式传参;
全局变量、局部变量:
1、定义在函数外部的变量拥有全局作用域,可以在整个程序范围内访问;
2、定义在函数内部的变量拥有一个局部作用域,只能在被声明的函数内部访问;
3、不可变类型:如整数、字符串、元组,在函数调用的过程中,只是传递了值,并没有影响对象本身;
4、可变类型:如列表、字典,在函数调用过程中,函数内修改了对象的值,也会影响全局变量本身;