网络编程
位置:首页>> 网络编程>> Python编程>> Python递归函数特点及原理解析

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

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

标签:Python,递归,函数

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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com