python函數教程:Python遞歸函數特點及原理解析

這篇文章主要介紹了Python遞歸函數特點及原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
1 遞歸函數的特點

特點

一個函數 內部 調用自己

函數內部可以調用其他函數,當然在函數內部也可以調用自己

代碼特點

函數內部的 代碼 是相同的,只是針對 參數 不同,處理的結果不同

當 參數滿足一個條件 時,函數不再執行

這個非常重要,通常被稱爲遞歸的出口,否則 會出現死循環!

示例代碼

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

在這裏插入圖片描述
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))

在這裏插入圖片描述

#  
# 練習
#  創建一個函數,用來檢查一個任意的字符串是否是迴文字符串,如果是返回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學習聚集地,點擊進入,這裏有資深程序員分享以前學習心得,學習筆記,還有一線企業的工作經驗,且給大家精心整理一份python零基礎到項目實戰的資料,每天給大家講解python最新的技術,前景,學習需要留言的小細節
以上就是本文的全部內容,希望對大家的學習有所幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章