欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python函數(shù)遞歸調(diào)用實(shí)現(xiàn)原理實(shí)例解析

 更新時(shí)間:2020年08月11日 08:29:41   作者:吃了好多肉  
這篇文章主要介紹了Python函數(shù)遞歸調(diào)用實(shí)現(xiàn)原理過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

函數(shù)的遞歸調(diào)用:

是函數(shù)嵌套調(diào)用的一種特殊形式

具體是指:

在調(diào)用一個(gè)函數(shù)的過(guò)程中又直接或間接地調(diào)用到了本身

# 直接調(diào)用本身
def func():
  print('我是func')
  func()

func()
# 函數(shù)會(huì)不斷的運(yùn)行永遠(yuǎn)不會(huì)結(jié)束,但Python不允許這種情況,會(huì)默認(rèn)限制只能調(diào)1000次.

# 間接調(diào)用本身
def f1():
  print('我是f1')
  f2()
  
def f2():
  print('我是f1')
  f1()

f1()
# 此時(shí)也相當(dāng)于直接調(diào)用本身,f1-->f2-->f1-->f2-->f1。。。同樣會(huì)不斷循環(huán)

遞歸不應(yīng)該無(wú)限的調(diào)用下去,必須在滿足某種條件下結(jié)束遞歸

# 寫(xiě)一個(gè)函數(shù)獲取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 

遞歸的兩個(gè)階段:

1、回溯:一層一層調(diào)用下去

2、遞推:滿足某種條件,結(jié)束遞歸調(diào)用,然后一層一層返回。

遞歸的應(yīng)用:

例如打印出一個(gè)嵌套多層列表內(nèi)的所有元素

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)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論