函数是一段可供调用的代码。
可以将数据(称为参数)传递到函数中。
函数可以返回数据作为执行结果。
在Python中,函数使用def关键字定义:
示例
def my_function(): print("来自my_function函数的问候")复制
调用函数,使用函数名后跟圆括号:
示例
def my_function(): print("来自my_function函数的问候") my_function()复制
可以给函数传递参数。
参数在函数名后面的括号中指定。您可以添加任意数量的参数,只需用逗号分隔即可。
下面的示例中,有一个带有一个参数(fname)的函数。当函数被调用时,传递一个城市,打印出城市全名:
示例
def my_function(fname): print(fname + "市") my_function("杭州") my_function("南京") my_function("成都")复制
函数的参数可以设置默认值,调用时如果没有传入参数值,则使用默认的参数值。
示例
def my_function(city = "杭州"): print("我住在" + city) my_function("南京") my_function("上海") my_function() my_function("成都")复制
函数的参数可以是任何数据类型(string、number、list、dictionary等),在函数内部参数数据类型不变。
例如,如果你可以把一个列表作为函数参数传入,在函数内部它仍然是一个列表:
示例
def my_function(vehicle): for x in vehicle: print(x) vehicle = ["自行车", "汽车", "高铁"] my_function(vehicle)复制
要让函数返回值,使用return语句:
示例
def my_function(x): return 10 * x print(my_function(2)) print(my_function(7)) print(my_function(8))复制
Python还允许函数递归,即函数可以自己调用自己。
递归是一个常见的数学和编程概念。在编程中,使用递归应该小心,用得好,递归可以是非常优雅的编程方式,用不好,递归容易导致死循环和栈溢出。
在下面例子中,tri_recursion()是一个递归函数,我们使用k变量作为参数,在每次递归时递减(-1),当k小于等于0时递归结束。
递归有一定的复杂性,弄清楚它到底是如何工作的,最好的方法是修改、测试它。
示例
def tri_recursion(k): if(k>0): result = k + tri_recursion(k-1) print(result) else: result = 0 return result print("\n\n递归示例结果:") tri_recursion(10)复制
← Python For 循环
Python Lambda →