在实际编程中,会有一段程序经常用到的情况,如果每次都重新写这段程序会很浪费时间,可以把这部分程序事先存储起来,以后需要时直接调用即可。函数就实现了这样的功能,它是一段组织好的、用来实现某些功能的代码段,可重复使用。函数能提高应用的模块性和代码的重复利用率。
函数一般包括系统内置的函数和自定义函数。
Python的内置函数有很多,如前面用到的print函数,常见的内置函数根据功能的不同,大致可分为数学运算类、字符串处理类、类型转换类、序列处理类等,本书重点在于机器学习和数据处理,对内置函数就不再详细陈述,读者可以查找联机文档了解Python的内置函数。下面介绍Python的自定义函数的使用方法。
自定义函数的基本语法格式如下。
def 函数名(参数列表): 函数体 return [表达式]
说明:
函数代码块以def关键词开头,后接函数标识符名称和小括号(()),后面再跟一个冒号(:)。
小括号用于定义参数,可以不包含参数,如果包含多个参数,参数之间以逗号分隔。函数内容缩进。
return [表达式]表示函数返回,选择性地返回一个值给调用方。不带表达式的return相当于返回None,省略return也相当于返回None。
下面来看几个实例。
【实例4-7】建立一个自定义函数,将要打印的内容传递给函数,在函数体内打印传递来的内容。
函数定义如下:
def myprint(str): print(str)
上面的函数代码体中只有一条语句,函数名称为“myprint”,输入参数命名为“str”,用于接收外部传来的内容,函数体中使用打印函数来打印外部传送来的字符。
函数的调用:函数调用的方法就是直接写出自定义的函数名就可以,如果有参数,直接提供参数,另外这个实例最后没有return语句,就是不需要返回任何值。
函数定义及调用如下图所示。
【实例4-8】定义一个函数,输入长和宽,在函数中计算矩形的面积。
def area(height, width): return height*width
上面的函数使用return把计算结果返回,调用这个函数时需要提供长和宽。程序运行结果如下图所示。
【实例4-9】建立一个数字比较函数,并比较输入数字。
分析:这个自定义函数用于实现数字比较,因此应有两个输入参数,在函数体中,使用条件语句判断两个参数的大小,并输出结果,程序代码如下。
def compare(num1, num2): if num1 > num2: print("%s大于%s" % (num1, num2)) elif num2 > num1: print("%s大于%s" % (num2, num1)) else: print("%s等于%s" % (num1, num2))
这个函数相较前面几个函数来说更为复杂,其中使用条件语句,根据输入的两个参数判断大小并显示结果。
这个函数的调用和其他函数的调用一样,使用函数名,并提供参数。例如:
compare(3,5) compare(6,5)
程序运行结果如下图所示。
当然,自定义函数在使用时,还涉及许多细节,如全局变量和局部变量。函数调用时参数也有多种情况,这些本书不再详细阐述。