函数执行特定的操作并返回一个值,你可以调用它(调用时可能需要提供一些参数——放在圆括号中的内容)。一般而言,要判断某个对象是否可调用,可使用内置函数callable。

>>> import math 
>>> x = 1 
>>> y = math.sqrt 
>>> callable(x) 
False 
>>> callable(y) 
True 

函数是结构化编程的核心。那么如何定义函数呢?使用def(表示定义函数)语句。

def hello(name): 
 return 'Hello, ' + name + '!' 

运行这些代码后,将有一个名为hello的新函数。它返回一个字符串,其中包含向唯一参数指定的人发出的问候语。你可像使用内置函数那样使用这个函数。

>>> print(hello('world')) 
Hello, world! 
>>> print(hello('Gumby')) 
Hello, Gumby! 

如果编写一个函数,返回一个由斐波那契数组成的列表呢?很容易!只需使用前面介绍的代码,但不从用户那里读取数字,而是通过参数来获取。

def fibs(num): 
    result = [0, 1] 
    for i in range(num-2): 
        result.append(result[-2] + result[-1]) 
    return result 

执行这些代码后,解释器就知道如何计算斐波那契数了。现在你不用再关心这些细节,而只需调用函数fibs。

>>> fibs(10) 
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34] 
>>> fibs(15) 
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]

在这个示例中,num和result也可以使用其他名字,但return语句非常重要。return语句用于从函数返回值(在前面的hello函数中,return语句的作用也是一样的)