5.1 函数的调用

初中的代数就出现过函数。如f(x)=3x+4,只要给出x的值,就能算出f(x)的值。函数简单来说,就是:输入、输出。
用文化角度来说,函数就相当于逻辑里面的因果,有因就有果。因是输入,果是输出。 只要因改变了,果就会改变。
在学习函数定义之前,我们先学习一下函数的调用。函数的调用需要知道三件事:
1.函数有什么功能
2.函数需要什么参数
3.函数的返回值是什么

通常我们在使用一个函数的时候,已经知道这三点了。
例如打印函数print:
1.函数的功能是打印;
2.函数的参数是需要打印的变量或者字符;
3.函数没有返回值(没有计算结果)

例如这是一个函数的说明,它在某个模块里已经实现。
#返回序列sq里的最大值
float find_max_value(sq)
首先开始的float表示这个函数最终的计算结果是float类型的值,括号的a表示这个函数需要一个参数,根据文字说明我们知道a是一个序列,并且知道它的功能。那么我们可以这样调用它(我们不必知道函数是怎么实现的就可以调用):
a=[103,4,6.7,8.9,-98,-3,0]
c=find_max_value(a)
c的值就是序列里的最大值,c的值将会是103。
如果c=findMaxValue(b,2);c的值就是数组从下标2开始找到末尾的最大值,c的值将会是9(当然我们现在直接使用这个函数是不可能的,因为findMaxValue并不存在)。
函数调用最大的特点是:你无需知道函数内部的实现细节换句话说,你不用知道函数是怎么实现的就可以使用它
例如我们经常使用的print函数,它功能是打印参数到控制台,它没有返回值。我们使用了这么久,并不知道它到底是怎么打印的,就算不知道它怎么工作的也不影响我们使用它。
日常生活中,我们一直在使用类似的“函数”:按电视遥控器,使用手机,刷卡付费等等
我们根本不需要知道它是怎么运作的,我们不是设计者,我们是使用者。
关于函数调用要注意的是: 函数调用的时候,参数的个数、类型要一致。如上面的例子,func有一个参数x,那么在调用func的时候,就必须把一个参数传进去。 函数最后的返回值(也就是应变量),需要用一个变量保存。否则函数就算计算完了你也得不到结果。就像写上“a+b;”这样的代码,a+b是计算出来了,但是没有用一个变量保存结果,所以这样的计算是无意义的,这样写“c=a+b”,结果就到了c,后续可以继续拿来使用。函数计算和这个一样。
函数可以重复调用,例如,第1行和第3行都使用了func函数:
b=func(6)
print(b)
b=func(5)
print(b)