Python 递归

递归:函数对自身定义的引用。

每次函数调用时,针对这个调用的新命名空间会被创建,意味着当函数调用“自身”时,实际上运行的是两个不同的函数(或者说同一个函数具有两个不同的命名空间)。

阶乘

计算数 n 的阶乘(n * (n-1) * (n-2) .. * 1):

# for 循环实现
def fac(n):
    result = n
    for i in range(1, n):
        result *= i
    return result
    
# 递归实现
def fac(n):
def rec_fac(n):
    if n == 1:
        return n
    else:
        return n * rec_fac(n - 1)
二分法
def search(sequence, number, lower=0, upper=None):
    if upper is None:
        upper = len(sequence) - 1
    if lower == upper:
        assert number == sequence[upper]
        return upper

    else:
        middle = (lower + upper)//2
        if number > sequence[middle]:
            return search(sequence, number, middle+1, upper)
        else:
            return search(sequence, number, lower, middle)
查找目录下的所有文件
def Test(rootDir):
    for lists in os.listdir(rootDir):
        path = os.path.join(rootDir, lists)
        print path
        if os.path.isdir(path):
            Test(path)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 说起递归,我觉得其实大部分人应该是不陌生的,递归广泛存在于生活中。比如: The woman in this im...
    Sharku阅读 5,913评论 0 9
  • 学习网址:递归函数 注意重点: 递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但...
    王诗翔阅读 380评论 0 0
  • 题目: 计算阶乘n!=n*(n-1)*(n-2)*…3*2*1 用递归函数来表示为: def f(x): if ...
    kevin282阅读 2,271评论 0 2
  • 简单的来定义下这个递归函数,通俗点讲就是一个函数在内部调用自身,这个函数就是递归函数。bb is cheap , ...
    海龙_Lewis阅读 661评论 1 3
  • 递归(英语:Recursion),又译为递回,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词...
    _无名人阅读 1,003评论 0 0