Python

Python 知识量:10 - 41 - 150

5.2 自定义函数><

创建函数- 5.2.1 -

除了使用Python内置函数外,可以自己创建函数。下面就以一个计算长方形面积的函数为例:

# area.py
import math
def area(length,width):
    """Returns the area of a rectangle with the given length and width.
For example:
>>>area(2,5)
10"""
    return length*width

运行结果为:

>>> 
====================== RESTART: D:\PythonTestFile\area.py ======================
>>> area(2,5)
10
>>> area(4,7)
28
>>> area(3.4,3)
10.2
>>> area(2.7,4.3)
11.61

调用自定义函数与调用内置函数的方法没有任何区别。在给函数命名时需要注意:只能包含字母、数字、下划线,且不能以数字开头。自定义函数名称不能与内置函数重复,最好是一个能表明函数用途的名称。

函数的结构- 5.2.2 -

下面来分析一下area函数的结构:

  • 函数定义的第1行函数头以def开头,def是definition的缩写。后面是函数名和小括号,小括号内是其参数,最后是一个冒号。

  • 对于拥有多个参数的函数,参数以列表的形式给出,每个参数用逗号分隔。参数表示输入函数的值。如果函数没有参数,则只包含小括号,但绝不能省略小括号。

  • 函数头后面三引号部分是可选的文档字符串。作用是对定义的函数进行简要说明,也可以给出示例,以便于对函数功能和工作原理的了解。

  • 文档字符串后面就是函数体部分,是真正完成工作,发挥函数作用的代码块。在函数体中,可以使用通过函数头传入的参数。

  • 最后函数通过关键字return返回计算结果。return语句可以位于函数体的任何位置,但一般位于结尾处。return语句也不是必须的,除非真的没必要,建议总是设置该语句,以建立良好的编程风格。

  • return语句执行后,程序将跳出函数并返回调用该函数的地方。

文档字符串- 5.2.3 -

Python的文档字符串有一套标准的格式:

  • 使用三引号标识字符串的开始和结束。

  • 第1行是函数的简要描述。

  • 接下来是详情和示例。

与内置函数一样,可以使用函数__doc__来查看文档字符串的内容。下面来看一下自定义函数area的文档字符串内容:

>>> print(area.__doc__)
Returns the area of a rectangle with the given length and width.
For example:
>>>area(2,5)
10

main()函数- 5.2.4 -

在C、Java等语言中,main()函数是必须使用的,而在Python程序中,main()函数则是可选的。尽管如此,还是建议使用main()函数,因为根据约定,main()函数被视为程序的起点。

# main.py
def main():
    total=0
    i=1;
    get=input('Enter number '+str(i)+' or "done": ')
    while get!='done':
        total=total+int(get)
        i=i+1
        get=input('Enter number '+str(i)+' or "done": ')
    print('The sum is '+str(total))

以上程序仍然是计算输入数字的总和,但所有代码块都定义到了main()函数中。运行以上代码,结果为:

>>> 
====================== RESTART: D:\PythonTestFile\main.py ======================
>>> main()
Enter number 1 or "done": 12
Enter number 2 or "done": 25
Enter number 3 or "done": done
The sum is 37

在实际运行时,需要调用main()函数,程序才会执行。