日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Python--递归

發布時間:2023/12/20 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python--递归 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向函數編程

def func():print('從前有座山,山里有座廟,廟里有個老和尚講故事,講的什么呀?')func()

解耦:盡量把不相關的功能拆開,用的時候再調用函數,增強代碼重用性,減少代碼變更的相互影響
要完成一個完整的功能,但這個功能的規模要盡量小,并且和這個功能無關的其他代碼應該和這個函數
分離
recursion 遞歸

什么是遞歸:

一個函數在內部調用了自己本身

def func():print('從前有座山,山里有座廟,廟里有個老和尚講故事,講的什么呀?')func()print('123')

這里面的123永遠不會打印,永遠都在執行下一個func()
import sys 和python解釋器相關的模塊
遞歸層數在python中最大997??梢愿南拗?。

import syssys.setrecursionlimit(1000000) # 修改最大范圍 ---但是 python 自己會根據計算機性能停止 count=0 def func():global countcount+=1print(count)func() func()

?

遞歸實例:
寫遞歸函數,必須要有一個結束條件
alex比egon大兩歲????? alex=egon+2
egon比wusir大兩歲???? egon=wusir+2
wusir比金鑫大兩歲???? wusir=金鑫+2
金鑫40了????????????? 金鑫40

推測的過程是遞,后面計算是歸

def age(n):if n ==4:return 40return age(n+1)+2 f = age(1) print(f)

根據線索向下是遞,拿到一個結果再向上是歸

遞歸方法求階乘:

def jie(n):return jie(n-1)*nprint(jie(7))

?

二分查找

l=[1,5,6,7,8,9,25,26,78,123,456,789,1233,7899,8521,9635,10255] def search(num,l,start=None,end=None):start=start if start else 0end=end if end else len(l)-1mid = (end-start)//2+startif start>end:return Noneif l[mid]>num:return search(num,l,0,mid-1)if l[mid]<num:return search(num,l,mid+1,end)if l[mid]==num:return mid,l[mid] print(search(78,l))

無序的先用.sort()排序

斐波那契數列遞歸

?

li=[1,1] def fib(n):if n>len(li):li.append(li[-2]+li[-1])fib(n)return li n = input('請輸入要計算的數字個數:') n = int(n) ret = fib(n) print(ret)

面試真題遞歸

?

data={'time':'2016-08-05T13:13:05','some_id':'ID1234', 'grp1':{'fld1':1,'fld2':2}, 'xxx2':{'fld3':0,'fld5':0.4},'fld6':11,'fld7':7,'fld46':8} def select(data,fields):li=fields.split('|')for item in data:if item in li:print(item,data[item])elif type(data[item])==dict:ret = select(data[item],fields) n = input('按照格式輸入:') select(data,n)

三級菜單遞歸

menu = {'北京': {'海淀': {'五道口': {'soho': {},'網易': {},'google': {}},'中關村': {'愛奇藝': {},'汽車之家': {},'youku': {},},'上地': {'百度': {},},},'昌平': {'沙河': {'老男孩': {},'北航': {},},'天通苑': {},'回龍觀': {},},'朝陽': {},'東城': {},},'上海': {'閔行': {"人民廣場": {'炸雞店': {}}},'閘北': {'火車戰': {'攜程': {}}},'浦東': {},},'山東': {}, } #相同的數據類型 嵌套在一起def Three_Level_Menu(menu):while True:for k in menu:print(k)key = input('>>>')if key == 'q':return 'q'elif key == 'b':breakelif key in menu:ret = Three_Level_Menu(menu[key])if ret == 'q': return 'q' Three_Level_Menu(menu) 三級菜單

?

轉載于:https://www.cnblogs.com/gaoshengyue/p/7485020.html

總結

以上是生活随笔為你收集整理的Python--递归的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。