日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python--递归

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

面向函數(shù)編程

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

解耦:盡量把不相關(guān)的功能拆開,用的時候再調(diào)用函數(shù),增強(qiáng)代碼重用性,減少代碼變更的相互影響
要完成一個完整的功能,但這個功能的規(guī)模要盡量小,并且和這個功能無關(guān)的其他代碼應(yīng)該和這個函數(shù)
分離
recursion 遞歸

什么是遞歸:

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

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

這里面的123永遠(yuǎn)不會打印,永遠(yuǎn)都在執(zhí)行下一個func()
import sys 和python解釋器相關(guān)的模塊
遞歸層數(shù)在python中最大997。可以改限制。

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

?

遞歸實例:
寫遞歸函數(shù),必須要有一個結(jié)束條件
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)

根據(jù)線索向下是遞,拿到一個結(jié)果再向上是歸

遞歸方法求階乘:

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()排序

斐波那契數(shù)列遞歸

?

li=[1,1] def fib(n):if n>len(li):li.append(li[-2]+li[-1])fib(n)return li n = input('請輸入要計算的數(shù)字個數(shù):') 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': {},'網(wǎng)易': {},'google': {}},'中關(guān)村': {'愛奇藝': {},'汽車之家': {},'youku': {},},'上地': {'百度': {},},},'昌平': {'沙河': {'老男孩': {},'北航': {},},'天通苑': {},'回龍觀': {},},'朝陽': {},'東城': {},},'上海': {'閔行': {"人民廣場": {'炸雞店': {}}},'閘北': {'火車戰(zhàn)': {'攜程': {}}},'浦東': {},},'山東': {}, } #相同的數(shù)據(jù)類型 嵌套在一起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) 三級菜單

?

轉(zhuǎn)載于:https://www.cnblogs.com/gaoshengyue/p/7485020.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。