针对这个Python函数问题,我从以下几点回答: 1. Python函数定义——defPython有很多已经定义好了的内置函数和模块,如果是自定义函数,则要像下面这样: 定义一个函数要使用关键字def,后面是函数名,括号,括号内是函数的参数,没有参数的时候不写,再后面就是冒号,然后在缩进块中编写函数体,最后使用关键字return返回函数值,没有返回值可以不写,也可以只写return,后面不跟值。这便是函数的基本定义。 注意:
关于函数的知识点还是挺多的,不过就重要性而言,还是函数本身逻辑的实现才是主要的,其他一些小细节,遇到了就明白了。 2. Python函数的调用函数定义好了,我们则要用起来,这也是本次作答的重点。如果是在本模块内(同一个py文件内)调用,则很简单,写一个if语句,如下: 这是推荐的写法,当然,你也可以直接这样 上面两种方式都能正确运行函数的调用过程,不过,__name__ == ‘__main__’ 的作用是,当此模块(py文件)被其他文件导入的时候,便不会执行,而仅仅是导入函数的定义。 __name__是模块的一个属性,其作用是调用当前模块的名称,若此模块是直接执行时,__name__ == ‘__main__’ 。当此模块是被其他程序import时,__name__的值为此模块的名称。 好了,函数的简单调用就是这样,若是想在其他模块中调用这个函数,那么: 假如你这个函数保存在文件名为:def_study.py 当然,导入模块的知识点也很多,这里就不细讲了 Python函数调用自身上面说清楚了函数的基本调用方法,那么,如题主所说的,想要调用函数自身该怎么做呢?举个栗子:上面是一个经典的数列:斐波那契数列,我们用函数来实现其计算 看注释你也知道了什么是斐波那契数列。上面的函数中,当n不为0和1时,就会调用函数自身,将参数分别减1和2。这样的写法,叫做递归。 递归会以栈的形式依次调用函数自身,直到条件发生变化到底,才会依次返回每一次递归调用的值,说实话,递归很占内存。我们是可以用循环改写此函数的。 循环的办法,就是依次计算第1,2,3……直到n个数的值。 这便是调用函数自身的例子!欢迎指正! |
|
来自: 庆亮trj21bcn0z > 《编程》