函数递归及面向过程编程

Posted yanjiayi098-001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数递归及面向过程编程相关的知识,希望对你有一定的参考价值。

函数递归及面向过程编程

一、函数递归

1.1什么是递归

递归就是函数调用函数本身,然后有结束条件。

一般解决无法求解但不断靠近的值,比如利用二分法找具体的数字,汉诺塔等

让我们举个栗子,比如要实现0-99的和,用while循环为:

num = 0
count = 0
while count<100:
    print(count)
    count += 1
    num +=count
print(num)

接下来我们用递归函数对他进行一个实现

count = 0
def f1():
    global count        #下面的count是全局的count
    if count >100:
        return
    count += 1
    print(count)
    f1()
f1()

以上就是一个递归函数,他其实在不断调用自身,同时他又一个结束条件就是当count<100的时候,调用就结束,输出count。

递归更多地是一种思想,他是用来解决某种问题

1.2 为什么要用递归

把规模大的、较难解决的问题变成规模较小的、易解决的同一问题。规模较小的问题又变成规模更小的问题,并且小到一定程度可以直接得出它的解,从而得到原来问题的解。

1.3 总结

1、递归一定要有一个明确的结束条件
2、每进入下一次递归,问题的规模都应该减少
3、递归效率不高,递归层次过多会变成死循环,导致栈溢出

二、面向过程编程

2.1 什么是面向过程编程

面向对称编程其实是一种机械式的思维方式。就是先干什么、后干什么、再干什么。

2.2 面向过程编程的优缺点

优点

? 复杂的问题流程化,简单化

缺点

  1. 上一个过程完蛋了,下一个过程也完蛋
  2. 功能与功能之间不独立
  3. 牵一发而动全身,不方便修改/扩展功能,可扩展性差

以上是关于函数递归及面向过程编程的主要内容,如果未能解决你的问题,请参考以下文章

Python基础 | 函数及面向过程编程详解

day05 协程函数,递归函数,匿名函数lambda,内置函数map reduce filter max min zip sorted,匿名函数lambda和内置函数结合使用,面向过程编程与函数编程

python3 面向过程编程思想,函数综合应用

2-面向过程的编程风格

python自动化开发-[第五天]-面向过程模块包

python/面向过程的编程思想及举例