含义:递归就是函数自己调用自己。
注意:使用递归需要设置结束条件,若无结束条件,程序会造成内存溢出。
案例:阶乘计算
什么是阶乘?
5的阶乘就是:5 * 4 * 3 * 2 * 1
3的阶乘就是:3 * 2 * 1
代码示例:
# 5的阶乘常规写法
def get_while_num(num):
"""
方法用于阶乘计算()常规写法
"""
# 定义变量
i = 1
# 存储结果
result = 1
while i <= num:
result *= i
i += 1
return result
print(get_while_num(5))
# 输出结果:120
程序执行逻辑:
5的阶乘就是:5 * 4 * 3 * 2 * 1
第一次循环:num = 5 ,i = 1,1 <= 5,result = 1 * 1 = 1 ;
第二次循环:num = 5 ,i = 2,2 <= 5,result = 1 * 2 = 2 ;
第三次循环:num = 5 ,i = 3,3 <= 5,result = 2 * 3 = 6 ;
第四次循环:num = 5 ,i = 4,4 <= 5,result = 6 * 4 = 24 ;
第五次循环:num = 5 ,i = 5,5 <= 5,result = 24 * 5 = 120 ;
当num = 5 ,i = 6,6 > 5,程序结束
# 注意:写递归的时候,一定要注意递归的出口在哪里
# 3的阶乘递归写法
def getNumber(num):
"""
使用递归计算阶乘
"""
if num > 1:
return num * getNumber(num-1)
else:
return num
print(getNumber(3))
# 输出结果:6
程序执行逻辑:
# 第三种写法
def test3():
return 3
def test2():
return 2 * test3()
def test1():
return 1 * test2()
print(test1())
# 输出结果:6
程序执行逻辑:
什么时候可以用递归?
当你不确定循环的个数的时候,可以使用递归,只需要你定义什么时候结束就可以了
标签:return,函数,递归,循环,num,阶乘,def 来源: https://www.cnblogs.com/Pork-belly8/p/16065161.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。