Python递归函数特点及原理解析

作者:天宇轩-王 时间:2023-12-02 19:40:40 

1 递归函数的特点

特点

一个函数 内部 调用自己

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

代码特点

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

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

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

示例代码


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

Python递归函数特点及原理解析

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

需求

定义一个函数 sum_numbers

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

计算 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))

Python递归函数特点及原理解析


#  
# 练习
#  创建一个函数,用来检查一个任意的字符串是否是回文字符串,如果是返回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'))

Python递归函数特点及原理解析

来源:https://www.cnblogs.com/dalianpai/p/12169206.html

标签:Python,递归,函数
0
投稿

猜你喜欢

  • 基于python实现百度语音识别和图灵对话

    2022-08-23 23:44:54
  • python configparser中默认值的设定方式

    2023-09-08 22:01:33
  • vue实现选中效果

    2024-05-11 09:12:56
  • 在 git 中取消 __pycache__ 文件的方法

    2022-09-14 20:00:17
  • Python Web框架Flask中使用新浪SAE云存储实例

    2022-11-03 06:27:16
  • Python实现类继承实例

    2023-11-13 07:44:24
  • asp如何编写一个DNS LOOKUP程序?

    2009-11-07 18:47:00
  • 在Django下测试与调试REST API的方法详解

    2023-05-19 16:09:32
  • 带你理解vue中的v-bind

    2023-07-02 16:52:44
  • Django User 模块之 AbstractUser 扩展详解

    2022-03-31 17:23:28
  • Python实现视频裁剪的示例代码

    2022-07-20 07:14:14
  • python实现的汉诺塔算法示例

    2023-09-21 11:28:17
  • Python合并多个Excel数据的方法

    2022-11-02 06:31:33
  • python pandas分组聚合详细

    2022-01-27 22:21:44
  • Python3分析处理声音数据的例子

    2021-04-21 03:23:26
  • PHP实现图片批量打包下载功能

    2024-05-11 09:47:21
  • Python3 加密(hashlib和hmac)模块的实现

    2022-07-02 08:13:52
  • MySQL处理重复数据的学习笔记

    2024-01-22 19:55:39
  • 深入解析Python中的list列表及其切片和迭代操作

    2023-03-24 04:20:40
  • ASP使用连接MYSQL数据库全攻略

    2007-09-23 09:06:00
  • asp之家 网络编程 m.aspxhome.com