10.4 Python中的函数
从上述温度转换的实例中不难发现,要想在Python中实现不同的功能,函数是必不可少的要素。因此本节将和大家一起讨论Python中的函数,并给大家介绍一些常用函数。
在Python中存在两种类型的函数:内置函数(built-in function)与 自定义函数(user-defined function)。内置函数指被提供作为Python自身一部分存在的函数,如print(),input(),float(),int()等;自定义函数则指由我们定义并使用的函数。
10.4.1 内置函数
Python中有很多重要的内置函数,它们是由开发者所定义并内置在Python中的解决常见问题的函数集,不需要预先定义就可以使用。用户可以通过特定的名称调用函数来达到预期的目的,即使用函数名称(),Python将根据所输入的不同参数[()里的部分]产生不同的效果[由()前的单词决定]。一般而言,函数获取参数并返回结果,其结果被称为返回值。表10-3列举了一些常用的内置函数。
表10-3 常用内置函数
10.4.2 自定义函数
目前为止,我们只是使用了Python的内置函数,但我们也可以自行定义新函数。所谓自定义函数是指通过定义函数名和一组语句序列来定义一个新函数,然后在执行时调用这个函数名称并产生相应效果。在一个脚本中,一旦定义了一个函数,就可以进行反复使用。Python提供了def这个关键词来帮助我们自定义函数。例如:
def homeland ():
print(‘一条大河波浪宽’)
print(‘风吹稻花香两岸’)
在这个例子中def是用来定义函数的保留关键字,自定义函数的名称是ssak3。第一行叫做函数头,剩余的部分叫做函数体。函数头必须以冒号结束,函数体必须缩进。函数体可以包含任意数量的语句。函数命名与变量命名的规则基本是一样的,即字母、数字以及一些符号是合法的,但第一个字符不能是数字并且不能使用保留关键字命名函数,还要避免函数名和变量名相同。现在的函数名后的括号是空的,这表示该自定义函数没有指定参数。后面我们会定义有参数的函数。在自定义函数完成后,调用自定义函数与调用内置函数的语法是一样的:
homeland()
一条大河波浪宽
风吹稻花香两岸
当一个脚本中既有内置函数又有自定义函数时,初学者可能会对程序执行的逻辑产生困惑。我们需要记得的是,程序一般从第一条语句开始,从上到下依次执行。对函数进行定义的语句不会影响到执行顺序,但要记住的是,自定义函数只有被调用的时候才会被执行,只写def部分是不会被执行的。而一次函数调用就像是一次迂回的执行流程,当遇到要调用的自定义函数时,程序不会接着去执行下一行语句,而是往上跳到自定函数的函数体处,在执行完函数体里的语句后程序会再回到刚才跳出的地方继续往下执行。
我们还可以通过指定自定义函数的参数来实现更复杂的效果,比如创建一个简单的函数Add,将两个数(分别以参数a和b表示)相加并且返回一个值。return语句的效果是从函数中返回结果:
def Add(a,b):
added=a+b
return added
这时当我们调用自定义函数Add(a,b)时,将会得到a+b的和:
x=Add(3,5)
print(x)
在执行上述程序时,print语句会打印出8。这是因为Add函数被调用时,输入3和5这两个参数,Add函数会将这两个数相加并将结果赋值给局部变量added,然后使用return语句将计算结果赋值给x并打印出来。
定义新函数可以让用户为一组语句命名并反复调用,从而使整段代码变得简洁、易于阅读、理解和调试。通过自定义函数,我们可以消除冗余代码,为程序瘦身。同时在需要修改相关函数效果时,只需改变一处即可。因此精心设计的自定义函数对很多程序而言都会有用。当自定义函数被创建并调试后,它就可以重复使用了。