遞歸
通俗理解1:一個(gè)洋蔥是帶著一層洋蔥皮的洋蔥。
通俗理解2:當(dāng)學(xué)習(xí)一個(gè)新知識(shí)點(diǎn)時(shí)叔遂,發(fā)現(xiàn)需要弄清另一個(gè)知識(shí)點(diǎn)他炊,于是不斷的去查詢另一個(gè)知識(shí)點(diǎn),最終從基礎(chǔ)知識(shí)點(diǎn)盤到需要學(xué)習(xí)的知識(shí)點(diǎn)已艰∪可以理解成俄羅斯套娃。
代碼理解:函數(shù)內(nèi)部調(diào)用函數(shù)自身的函數(shù)哩掺。python示例:
"""遞歸"""
# 定義函數(shù)recursio,
def recursio2zero(n):
"""入傳遞進(jìn)函數(shù)的參數(shù)值不斷進(jìn)行地板除(取整除)凿叠,直到整除為0,函數(shù)結(jié)束"""
v = n // 2
print(v)
if v == 0:
return
v = recursio2zero(v)
recursio2zero(20)
返回結(jié)果:
D:\python_pycharm\venv\Scripts\python.exe C:/Users/Administrator/Desktop/django-project/mysite/keithyang/test.py
10
5
2
1
0
隊(duì)列
一種數(shù)據(jù)結(jié)構(gòu)線性表嚼吞。
D}%64HJ4)VSI($OMT~_QTG6.png
線性表通俗理解:一種存儲(chǔ)結(jié)構(gòu)盒件。將具有“一對(duì)一”關(guān)系的數(shù)據(jù)“線性”地存儲(chǔ)到空閑的物理空間中。
隊(duì)列通俗理解:排隊(duì)舱禽。如演唱會(huì)入口排隊(duì)檢票規(guī)定隊(duì)伍總長(zhǎng)為10人炒刁,前面的人進(jìn)去一個(gè),后面才能補(bǔ)上一個(gè)誊稚。
代碼理解:線性表中允許插入的一端稱為隊(duì)尾翔始,允許刪除的一端稱為隊(duì)頭。適用于多線程編程片吊。
python中有四種隊(duì)列方法:先進(jìn)先出绽昏,后進(jìn)后出。
示例:
python
"""先進(jìn)先出隊(duì)列"""
import queue
# print('aa')
# python中引入內(nèi)置庫queue導(dǎo)入隊(duì)列
# 創(chuàng)建隊(duì)列對(duì)象q
# maxsize該隊(duì)列數(shù)據(jù)上限俏脊,超過將將阻塞代碼全谤。直到數(shù)據(jù)被消費(fèi)掉,0為不限制
q = queue.Queue(maxsize=6)
q.put([1,2])
#寫入隊(duì)列數(shù)據(jù)
for i in range(5):
q.put(i)
#輸出當(dāng)前隊(duì)列所有數(shù)據(jù)
print(q.queue)
#刪除隊(duì)列數(shù)據(jù),并返回該數(shù)據(jù)
q.get()
#打印所有隊(duì)列數(shù)據(jù)
print(q.queue)
#刪除隊(duì)列數(shù)據(jù)爷贫,并返回該數(shù)據(jù)
q.get()
#打印所有隊(duì)列數(shù)據(jù)
print(q.queue)
控制臺(tái)輸出:
deque([[1, 2], 0, 1, 2, 3, 4])
deque([0, 1, 2, 3, 4])
deque([1, 2, 3, 4])