python中函数递归VS循环

简介: python中函数递归VS循环

一、函数递归的实现



函数是否可以做到类似于循环?

答案是肯定可以的。我们可以采用函数的递归算法。


什么是递归?

可以理解为在定义的函数内部调用函数自己,形成一个回路。既然形成了一个回路,那么必须要有一个退出的方式。而这种退出的方式一般都是采用条件判断来实现的。


下面我们举一个实际递归的例子

n=1

def digui(a):

   print(a)

   if(a>=10):

       return

   a+=1

   digui(a)


digui(n)


根据以上实际的例子,我们总结出函数递归使用的注意点:

  1. 函数的自我调用。
  2. 一定要有退出条件。
  3. 尽可能少用递归,因为非常消耗内存。


出题:阶层的计算,计算10!的结果,采用函数递归的方式进行计算。

如果您没有碰到过阶层的概念,请试着对以下例子进行理解。举例:

0!=1

1!=1*1

2!=2*1

3!=3*2*1

4!=4*3*2*1

。。。

10!=10*9*8*…*2*1

(此题答案在本文最后公布)


二、总结强调



1.掌握递归的定义方法。

2.掌握递归的注意事项。

3.掌握递归与for循环的联系与区别。


本节代码:

#for循环举例
# for i in range(1,11):
#     print(i)
#利用函数递归来输出1-1000之间的数字
import sys #导入sys库
sys.setrecursionlimit(8000) #设置递归深度
n=1
def digui(a):
    print(a)
    if(a>=1000):
        return
    a+=1
    digui(a)
digui(n)

答案公布:

#定义一个计算阶层的回调函数
def jieceng(n):
    if(n==1):
        return 1
    else:
        return n*jieceng((n-1))
print(jieceng(10))

执行结果:

3628800
相关文章
|
18天前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
123 67
|
12天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
38 18
|
4天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
30 8
|
13天前
|
Python
Python中的函数
Python中的函数
29 8
|
20天前
|
监控 测试技术 数据库
Python中的装饰器:解锁函数增强的魔法####
本文深入探讨了Python语言中一个既强大又灵活的特性——装饰器(Decorator),它以一种优雅的方式实现了函数功能的扩展与增强。不同于传统的代码复用机制,装饰器通过高阶函数的形式,为开发者提供了在不修改原函数源代码的前提下,动态添加新功能的能力。我们将从装饰器的基本概念入手,逐步解析其工作原理,并通过一系列实例展示如何利用装饰器进行日志记录、性能测试、事务处理等常见任务,最终揭示装饰器在提升代码可读性、维护性和功能性方面的独特价值。 ####
|
27天前
|
Python
Python中的`range`函数与负增长
在Python中,`range`函数用于生成整数序列,支持正向和负向增长。本文详细介绍了如何使用`range`生成负增长的整数序列,并提供了多个实际应用示例,如反向遍历列表、生成倒计时和计算递减等差数列的和。通过这些示例,读者可以更好地掌握`range`函数的使用方法。
41 5
|
26天前
|
开发工具 Python
[oeasy]python043_自己制作的ascii码表_循环语句_条件语句_缩进_indent
本文介绍了如何使用Python制作ASCII码表,回顾了上一次课程中`print`函数的`end`参数,并通过循环和条件语句实现每8个字符换行的功能。通过调整代码中的缩进,实现了正确的输出格式。最后展示了制作完成的ASCII码表,并预告了下一次课程的内容。
22 2
|
28天前
|
Python
在 Python 中实现各种类型的循环判断
在 Python 中实现各种类型的循环判断
29 2
|
29天前
|
Python
Python 中,循环判断
Python 中,循环判断
48 1
|
1月前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
46 2