数学中的函数一词泛指发生在集合之间的一种对应关系和变化过程。在程序设计领域,函数实际上就是一段具有特定功能、完成特定任务的程序,以减少重复编写程序段的工作量。在面向过程程序设计中也被称为过程(Procedure)、子程序(Sub-program),在面向对象程序设计中则被称为方法(Method)。本教程之前使用的 print( ) 函数就是常用的函数之一。

在 Python 中定义一个函数需要遵循以下规则:

函数代码块以 def 关键词开头,后接函数名称和小括号( ),小括号后的冒号:表示函数体的开始;

任何传入参数和自变量必须放在小括号中间;

函数的第一行语句可以使用注释语句编写函数说明;

函数体遵循缩进语法;

函数以 return 语句结束,用于返回结果给调用方。

定义函数的语法如下:

def 函数名(参数列表):

函数体

定义一个打印“Hello World!”文字的函数,代码如下:

def Print_HelloWorld():

print("Hello World")

稍微复杂一点,为函数增加两个参数,计算长方形的面积,例如:

def Calc_Area(width, height):

return width * height

完成函数定义后即可调用运行,例如:

print(Calc_Area(3, 4))

上述代码的运行结果如下所示:

>>> def Calc_Area(width, height):
...          return width * height
>>> print(Calc_Area(3, 4))
12

温馨提示:Python 中函数参数及返回值均无须显式定义数据类型

习惯了 C# 或 Java 等语言的用户在刚开始编写 Python 函数时会很不习惯其无须显式定义返回类型的做法,在 C# 或 Java 等语言中往往需要指明函数返回结果的数据类型以及每个参数的数据类型。

需要指出的是,虽然 Python 中函数参数及返回值均无须显式定义数据类型,但 Python 与 C#、Java 等语言一样,也是强类型语言,即变量的使用要严格符合定义,所有变量都必须先定义后使用。一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它将始终是这个数据类型。

可以使用 type( ) 函数现场查看一个变量或一个函数返回的结果是什么类型,例如:

def Calc_Area(width, height):
print(type(width))
print(type(height))
return width * height
area = Calc_Area(3, 4)
print(type(area))
上述代码的运行结果如下所示。
>>> def Calc_Area(width, height):
...          print(type(width))
...          print(type(height))
...          return width * height
>>> area = Calc_Area(3, 4)
>>> print(type(area))