zoukankan      html  css  js  c++  java
  • Python的递归函数

    1 递归函数的特点

    特点

    • 一个函数 内部 调用自己

      • 函数内部可以调用其他函数,当然在函数内部也可以调用自己

    代码特点

    1. 函数内部的 代码 是相同的,只是针对 参数 不同,处理的结果不同

    2. 参数满足一个条件 时,函数不再执行

      • 这个非常重要,通常被称为递归的出口,否则 会出现死循环

    示例代码

    def sum_numbers(num):
    ​
        print(num)
        
        # 递归的出口很重要,否则会出现死循环
        if num == 1:
            return
    ​
        sum_numbers(num - 1)
        
    sum_numbers(3)

    2 递归案例 —— 计算数字累加

    需求

    1. 定义一个函数 sum_numbers

    2. 能够接收一个 num 的整数参数

    3. 计算 1 + 2 + ... num 的结果

    def sum_numbers(num):
    ​
        if num == 1:
            return 1
        
        # 假设 sum_numbers 能够完成 num - 1 的累加
        temp = sum_numbers(num - 1)
    ​
        # 函数内部的核心算法就是 两个数字的相加
        return num + temp
    ​
    print(sum_numbers(2))

    #   
    # 练习
    #   创建一个函数,用来检查一个任意的字符串是否是回文字符串,如果是返回True,否则返回False
    #   回文字符串,字符串从前往后念和从后往前念是一样的
    #       abcba
    #   abcdefgfedcba
    #   先检查第一个字符和最后一个字符是否一致,如果不一致则不是回文字符串
    #       如果一致,则看剩余的部分是否是回文字符串
    #   检查 abcdefgfedcba 是不是回文
    #   检查 bcdefgfedcb 是不是回文
    #   检查 cdefgfedc 是不是回文
    #   检查 defgfed 是不是回文
    #   检查 efgfe 是不是回文
    #   检查 fgf 是不是回文
    #   检查 g 是不是回文
    
    def hui_wen(s):
        '''
            该函数用来检查指定的字符串是否回文字符串,如果是返回True,否则返回False
    
            参数:
                s:就是要检查的字符串
        '''
        # 基线条件
        if len(s) < 2:
            # 字符串的长度小于2,则字符串一定是回文
            return True
        elif s[0] != s[-1]:
            # 第一个字符和最后一个字符不相等,不是回文字符串
            return False
            # 递归条件    
        return hui_wen(s[1:-1])
    
    print(hui_wen('abcdefgfedcba'))

     

  • 相关阅读:
    I帧/P帧/B帧---术语解释
    利用forwardInvocation实现消息重定向
    doubango地址配置
    ARC使用小结
    NSException异常处理
    Runtime of Objective-C
    perl脚本框架整理
    模块——Getopt::Long接收客户命令行参数和Smart::Comments输出获得的命令行参数内容
    Linux学习进阶示意图
    Linux——入门命令
  • 原文地址:https://www.cnblogs.com/dalianpai/p/12169206.html
Copyright © 2011-2022 走看看