临沂达内IT培训学校 |
如何理解递归函数
a) 引言:在一个函数中自己调用自己会怎么样呢?会陷入无限的调用循环。为了解决该问题就需要使用递归。
b) 应用:
i. 案例分析:编写一个函数,该函数接收一个整数n,然后计算输出n的阶乘。
1. 首先定义一个一个函数def factorial(n),该函数应该怎么实现呢?我们知道计算n的阶乘有如下规律:n!=n*[(n-1)*[n-2]…*1]=n*(n-1)!
2. 函数实现步骤可以是
def factorial(n):
1.计算(n-1)的阶乘
2.返回step1的结果值*n
要完成1步的事情,就是要计算(n-1)!。由于我们这个函数是计算n!,因此1步也可以理解为,以n-1为参数,调用factorial函数。代码就会变成:
def factorial(n):
1.factorial(n-1)
2.返回step1的结果值*n
在该代码中,出现了在factorial函数中调用factorial函数的情况。出现了函数的递归。为了完善上述代码,可以将代码中的第二部也翻译成代码:
def factorial(n):
1. int result=factorial(n-1)
2. return result*n
但是问题也出现了,加入n=3,在fac(3)的内部会调用fac(2),在fac(2)中会调用fac(1),在fac(1)中会调用fac(0)-》fac(-1)……因此我们需要规定一个循环调用结束的条件。在当前程序中当参数n的值为1时,则计算1的阶乘,到这一步就没有必要继续递归下去的必要了,因此n=1是,应当直接返回。
def factorial(n):
if(n==1):
return 1
int result=factorial(n-1)
return result*n
python技术是什么?
Python是一种通用的脚本开发语言,比其他编程语言更加简单、易学,其面向对象特性甚至比Java、C#、.NET更加彻底,因此非常适合开发。Python在软件质量控制、开发效率、可移植性、组件集成、库支持等方面均具有明显的优势。
我们为什么要学Python?
python编程“简单”“”
达内python培训课程优势
Our Courses
达内python培训教学优势
Our Teaching
尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/news/169292/违者必究! 以上就是临沂达内IT培训学校 小编为您整理北京Python去哪里学好的全部内容。