python函数不可以递归调用_Python函数递归调用实现原理实例解析

本文介绍了函数递归调用的概念,包括直接和间接调用自身,并通过示例展示了递归可能导致的无限循环问题。同时,解释了递归的两个阶段——回溯和递推,强调了递归必须在满足特定条件时终止。此外,还提供了一个使用递归遍历多层列表的示例。最后,讨论了递归在实际编程中的应用和注意事项。
摘要由CSDN通过智能技术生成

函数的递归调用:

是函数嵌套调用的一种特殊形式

具体是指:

在调用一个函数的过程中又直接或间接地调用到了本身

# 直接调用本身

def func():

print('我是func')

func()

func()

# 函数会不断的运行永远不会结束,但Python不允许这种情况,会默认限制只能调1000次.

# 间接调用本身

def f1():

print('我是f1')

f2()

def f2():

print('我是f1')

f1()

f1()

# 此时也相当于直接调用本身,f1-->f2-->f1-->f2-->f1。。。同样会不断循环

递归不应该无限的调用下去,必须在满足某种条件下结束递归

# 写一个函数获取0-9

def f1(n):

if n == 10:

return

print(n)

n += 1

f1(n)

f1(0)

# 0 1 2 3 4 5 6 7 8 9

递归的两个阶段:

1、回溯:一层一层调用下去

2、递推:满足某种条件,结束递归调用,然后一层一层返回。

递归的应用:

例如打印出一个嵌套多层列表内的所有元素

li = [1,2,[3,4,[5,6,[7,8],9]]]

def func(l):

for i in l:

if type(i) is list:

func(i)

else:

print(i)

func(li)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

发表评论 QQ

昵称

邮箱

网址

1.gif2.gif3.gif4.gif5.gif6.gif7.gif8.gif9.gif10.gif11.gif12.gif13.gif14.gif15.gif16.gif17.gif18.gif19.gif20.gif21.gif22.gif23.gif24.gif25.gif26.gif27.gif28.gif29.gif30.gif31.gif32.gif33.gif34.gif35.gif36.gif

有人回复时邮件通知我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值