Python 函数

版权所有,未经许可,禁止转载


章节


函数是一段可供调用的代码。

可以将数据(称为参数)传递到函数中。

函数可以返回数据作为执行结果。

创建函数

在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)
posted @ 2019-11-08 12:52  海边长大  阅读(187)  评论(0编辑  收藏  举报