Python 函数


本章节我们将为大家介绍Python中函数的应用。

该章节可参阅Python 函数应用详解。

Python 定义函数使用 def 关键字,一般格式如下:

  1. def  函数名(参数列表):
  2.     函数体


让我们使用函数来输出"Hello World!":

  1. >>> def hello() :
  2. print("Hello World!")
  3.  
  4. >>> hello()
  5. Hello World!
  6. >>>


更复杂点的应用,函数中带上参数变量:

  1. def area(width, height):
  2.     return width * height
  3.  
  4. def print_welcome(name):
  5.     print("Welcome", name)
  6.  
  7. print_welcome("Fred")
  8. = 4
  9. = 5
  10. print("width =", w, " height =", h, " area =", area(w, h))


以上实例输出结果:

  1. Welcome Fred
  2. width = 4  height = 5  area = 20


函数变量作用域

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

通过以下实例,你可以清楚了解Python函数变量的作用域:

  1. #!/usr/bin/env python3
  2. = 4  # 全局变量
  3.  
  4. def print_func1():
  5.     a = 17 # 局部变量
  6.     print("in print_func a = ", a)
  7. def print_func2():   
  8.     print("in print_func a = ", a)
  9. print_func1()
  10. print_func2()
  11. print("a = ", a)


以上实例运行结果如下:

  1. in print_func a =  17
  2. in print_func a =  4
  3. =  4


关键字参数

函数也可以使用 kwarg=value 的关键字参数形式被调用.例如,以下函数:

  1. def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
  2.     print("-- This parrot wouldn't", action, end=' ')
  3.     print("if you put", voltage, "volts through it.")
  4.     print("-- Lovely plumage, the", type)
  5.     print("-- It's", state, "!")


可以以下几种方式被调用:

  1. parrot(1000)                                          # 1 positional argument
  2. parrot(voltage=1000)                                  # 1 keyword argument
  3. parrot(voltage=1000000, action='VOOOOOM')             # 2 keyword arguments
  4. parrot(action='VOOOOOM', voltage=1000000)             # 2 keyword arguments
  5. parrot('a million', 'bereft of life', 'jump')         # 3 positional arguments
  6. parrot('a thousand', state='pushing up the daisies')  # 1 positional, 1 keyword


以下为错误调用方法:

  1. parrot()                     # required argument missing
  2. parrot(voltage=5.0, 'dead')  # non-keyword argument after a keyword argument
  3. parrot(110, voltage=220)     # duplicate value for the same argument
  4. parrot(actor='John Cleese')  # unknown keyword argument


返回值

Python的函数的返回值使用return语句,可以将函数作为一个值赋值给指定变量:

  1. def return_sum(x,y):
  2.     c = x + y
  3.     return c
  4.  
  5. res = return_sum(4,5)
  6. print(res)


你也可以让函数返回空值:

  1. def empty_return(x,y):
  2.     c = x + y
  3.     return
  4.  
  5. res = empty_return(4,5)
  6. print(res)


可变参数列表

最后,一个最不常用的选择是可以让函数调用可变个数的参数.这些参数被包装进一个元组(查看元组和序列).在这些可变个数的参数之前,可以有零到多个普通的参数:

  1. def arithmetic_mean(*args):
  2.     sum = 0
  3.     for x in args:
  4.         sum += x
  5.     return sum
  6.  
  7. print(arithmetic_mean(45,32,89,78))
  8. print(arithmetic_mean(8989.8,78787.78,3453,78778.73))
  9. print(arithmetic_mean(45,32))
  10. print(arithmetic_mean(45))
  11. print(arithmetic_mean())


以上实例输出结果为:

  1. 244
  2. 170009.31
  3. 77
  4. 45
  5. 0


更详细教程请参阅参阅Python 函数应用详解。