在结构化程序设计中,我们强调程序设计应该遵循三种简单的程序设计流程,使程序更容易理解,设计起来更方便。当然我们所说的方法(method)只是在类的概念上的定义,在没有学到类的概念前,我们姑且称之为函数,也就是function,关于method和function你不必细究太多,暂时可以这样理解,如果在类内部定义的,就叫method,如果在一个模块中,或者说独立定义的就叫function。
还是以圆的面积的例子来说明。我们要求一个圆的面积时,每次要求不同的面积就需要输入不同的r半径。而且在新的程序中,如果我们想再次使用这个功能时就需要重新定义这个功能。按照程序设计中的流程控制,我们又要重新写一次和原来一模一样的代码,你可以想象,这有多累啊!!!几次可能你不会觉得有什么,但是如果你要调用这个功能几十次昵?几百次昵,?你可能会疯掉吧!
对于上述问题一个好的方法就是定义一个函数实现某一种功能。在python中我们使用def关键字定义函数,例如我们定义一个打印
Hello Python的函数:
你看,就这么简单。函数的一般定义格式为
def 函数名():
语句1
语句2
.....
但是,但是,说好的我们的圆面积的函数昵?
你可能会想到,这样定义:
哈哈,起初我也是这样想的!但是我们这个函数只能求半径为5的圆的面积,要是我想求半径为10的圆的面积昵?显然这个不符合函数灵活方便的特点。所以我们引入一个新的概念,函数参数args。对于圆的半径我们可以让调用者自己传入,这样我们求圆的面积就灵活多了。在函数中增加参数只需要在括号里声明就好了,类似这样:
函数中的r是一个变量,只要合法,你传什么值就计算什么值的圆的面积。
函数还有返回值的概念,如果我只想得到圆面积的值,而并不想打印出来。这时,就可以用到函数的返回值了:
函数要返回一个值,就用关键字return 后面加上一个变量,或者表达式,或者常量