溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python中遞歸函數(shù)的原理是什么

發(fā)布時(shí)間:2021-05-14 16:24:30 來(lái)源:億速云 閱讀:256 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

Python中遞歸函數(shù)的原理是什么?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

1 遞歸函數(shù)的特點(diǎn)

特點(diǎn)

一個(gè)函數(shù) 內(nèi)部 調(diào)用自己

函數(shù)內(nèi)部可以調(diào)用其他函數(shù),當(dāng)然在函數(shù)內(nèi)部也可以調(diào)用自己

代碼特點(diǎn)

函數(shù)內(nèi)部的 代碼 是相同的,只是針對(duì) 參數(shù) 不同,處理的結(jié)果不同

當(dāng) 參數(shù)滿(mǎn)足一個(gè)條件 時(shí),函數(shù)不再執(zhí)行

這個(gè)非常重要,通常被稱(chēng)為遞歸的出口,否則 會(huì)出現(xiàn)死循環(huán)!

示例代碼

def sum_numbers(num):
  print(num)
  # 遞歸的出口很重要,否則會(huì)出現(xiàn)死循環(huán)
  if num == 1:
    return
  sum_numbers(num - 1)
sum_numbers(3)

Python中遞歸函數(shù)的原理是什么

2 遞歸案例 —— 計(jì)算數(shù)字累加

需求

定義一個(gè)函數(shù) sum_numbers

能夠接收一個(gè) num 的整數(shù)參數(shù)

計(jì)算 1 + 2 + ... num 的結(jié)果

def sum_numbers(num):
  if num == 1:
    return 1
    # 假設(shè) sum_numbers 能夠完成 num - 1 的累加
  temp = sum_numbers(num - 1)
  # 函數(shù)內(nèi)部的核心算法就是 兩個(gè)數(shù)字的相加
  return num + temp
print(sum_numbers(2))

Python中遞歸函數(shù)的原理是什么

#  
# 練習(xí)
#  創(chuàng)建一個(gè)函數(shù),用來(lái)檢查一個(gè)任意的字符串是否是回文字符串,如果是返回True,否則返回False
#  回文字符串,字符串從前往后念和從后往前念是一樣的
#    abcba
#  abcdefgfedcba
#  先檢查第一個(gè)字符和最后一個(gè)字符是否一致,如果不一致則不是回文字符串
#    如果一致,則看剩余的部分是否是回文字符串
#  檢查 abcdefgfedcba 是不是回文
#  檢查 bcdefgfedcb 是不是回文
#  檢查 cdefgfedc 是不是回文
#  檢查 defgfed 是不是回文
#  檢查 efgfe 是不是回文
#  檢查 fgf 是不是回文
#  檢查 g 是不是回文

def hui_wen(s):
  '''
    該函數(shù)用來(lái)檢查指定的字符串是否回文字符串,如果是返回True,否則返回False

    參數(shù):
      s:就是要檢查的字符串
  '''
  # 基線條件
  if len(s) < 2:
    # 字符串的長(zhǎng)度小于2,則字符串一定是回文
    return True
  elif s[0] != s[-1]:
    # 第一個(gè)字符和最后一個(gè)字符不相等,不是回文字符串
    return False
    # 遞歸條件  
  return hui_wen(s[1:-1])

print(hui_wen('abcdefgfedcba'))

Python中遞歸函數(shù)的原理是什么

python有哪些常用庫(kù)

python常用的庫(kù):1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。

看完上述內(nèi)容,你們掌握Python中遞歸函數(shù)的原理是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI