数学上的函数,是指给定一个输入,就会有唯一输出的一种对应关系。编程语言里的函数跟这个意思差不多,但也有不同。
编程中所说的函数,就是一堆语句组成的语句块,这个语句块有个名字,你可以在需要时反复地使用这块语句。它有可能需要输入,有可能会返回输出。
举一个现实中的场景:我们去餐厅吃饭,跟服务员点了菜,过了一会儿,服务员把做好的菜端上来。
我们之前已经用到过 python 里内建的函数,比如 input 和 range。
以 range(1,10) 为例,range 是这个函数的名称,后面括号里的1和10是 range 需要的参数。它有返回结果,就是一个从1到9的序列生成器(暂时你可以理解为,就是1~9九个数字)。
再来看 input(),括号里面什么都没有,表示我们没有给参数。函数执行过程中,需要我们从控制台输入一个值。函数的返回结果就是我们输入的内容。
PS:range 还可以接受1个或3个参数,input也可以接受1个字符串参数。可以等我之后几课来讲,或者尝试在网上搜索下“python range 参数”。
如果我们要自己写一个函数,就需要去 定义 它。python里的关键字叫 def(define的缩写),格式如下:
def sayHello():
print ('hello world!')
sayHello 是这个函数的名字,后面的括号里是参数,这里没有,表示不需要参数。但括号和后面的冒号都不能少。下面缩进的代码块就是整个函数的内容,称作函数体。
然后我们去调用这个函数,就是用函数名加上括号,有必要的话,括号里放参数:
sayHello()
得到和直接执行print ('hello world!')一样的结果。