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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

[转载] Python 递归 深入理解递归 Python递归剖析,绝对让你看懂!

發布時間:2025/3/11 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载] Python 递归 深入理解递归 Python递归剖析,绝对让你看懂! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考鏈接: Python | print()中的結束參數

目錄

?遞歸剖析 遞歸的兩個過程 return 返回值 詳解

? ? 遞歸思路二分法和遞歸尾遞歸遞歸練習題

??

?

?

?

遞歸剖析?

遞歸真的很重要,之前學的時候,學的一知半解,以為真正了解,每次想到遞歸,就記得一句:返回給函數的調用者,嗯?函數調用者,你是說外部,還是內部啊?疑問太多了,還有就是被告知一句:遞歸能解決的問題,循環都能解決,所以就更加不重視遞歸了!直到接觸算法后,在解決問題時,最快,最容易理解的解法就是遞歸,但是此時的遞歸卻是看不太懂為什么要這樣做!我先來說下,在算法中遇到可以用遞歸輕松完成的:希爾排序、歸并排序、快速排序、反轉鏈表及各種反轉問題、二叉樹的深度遍歷、二叉樹的各種題基本可以用、全排列…還有算法步驟里需要用到,太多了,所以,遞歸非常重要!“To iterate is human, to recurse divine 迭代是人,遞歸是神”,接下來,我也是看了很多算法書和視頻,重點來整理下遞歸!?

?遞歸的兩個過程?

首先“遞歸”包括兩個過程:遞“去”的過程,“歸”回的過程!先從一個簡單的遞歸函數講起?

def di_gui(n):

? ? print(n, "<===1====>")

? ? if n > 0:

? ? ? ? di_gui(n - 1)

? ? print(n, '<===2====>')

?

?

di_gui(5) # 外部調用后打印的結果是?

?

?遞歸的執行過程:首先,遞歸會執行“去”的過程,只需要滿足終止條件,就會一直在函數內,帶著更新的參數,調用函數自身,注意:到內部調用函數, 以下面的代碼不會被執行,而是暫停阻塞;此時 隨著函數每調用一次自身,還沒有觸發 返回值和到達終止條件,等同于在原來的基礎上不斷“向下/向內”開辟新的內存空間,記住,每次調用一次函數,就不是處在同一空間(想象下《盜夢空間》里的情景,夢中夢,都是處于不同的空間)? ?什么時候“遞”去的過程結束?記住有兩種情況>>> 一是:當前這層空間函數全部執行結束(終止條件),二是:執行到了return 返回值,直接返回;? 重點來理解下,首先是一,看上面的列子,例子中沒有return,但是不斷的調用后,最終還是停止了,因為最后n=0時,di_gi(0)還是去調用,從上往下執行時,遇到if n>0 它被終止了,走不下去了,表明,自己能到達的這層空間已經全部執行完畢;接下來請原地返回吧,返回到哪里?返回到函數的調用者,好我們返回到 di_gui(0),把“到內部調用函數” 以下的代碼全部執行完;執行完,看代碼走到末尾,以為走出了最外層函數?注意了,此時它所處的空間并不是最外層哦,因為之前它被調用就在空間里面,所以回到的是 di_gui(1)的這一層空間,現在才是真正的開始“回”,所以繼續把di_gui(1)的這一層空間,“到內部調用函數”以下的代碼全部執行完,回到di_gui(2)的這一層空間…直到到達最開始 從外部調用,讓參數5進入的最外層空間位置,才走出來!表示《盜夢空間》里,柯布醒了!? 回來看下,代碼輸出的結果:5 4 3 2 1 00 1 2 3 4 5 ( 注意00這兩個是在同一層空間哦)? ?從內存角度(本質)來分析:每調用一次函數,都會單獨開辟一份棧幀空間,遞歸函數就是不停的開辟和釋放棧幀空間的過程,具體來理解下:一個普通函數從執行到結束,就是一個開辟空間和釋放空間的過程;而遞歸函數是在調用最外層函數時,先開辟一個最外層空間,每調用一次自身,就會在最外層空間內,再自己開辟本次的空間(所以遞歸耗內存)(還有一種說法是,不斷的本次空間的基礎上再開辟空間,等于是不斷的嵌套,其實這兩種說法本質上是一樣的,因為信息都可以做到不共享),空間之間如果不通過參數傳遞或者用return 返回值,信息是不共享的,如下圖↓↓↓??

??

?遞歸的數據共享情況:遞歸每一層間的數據是獨立的,不共享,但是可以通過參數或者返回值來形成共享,參數具體在傳入的是“引用類型”(比如列表)? 遞歸 必須要有一個出口,如果沒有出口就會重復調用,不斷的開辟棧幀空間??

# 獲取最大遞歸層數:

import sys

res=sys.getrecursionlimit()

print(res) # 結果:1000

# sys.setrecursionlimit(800) 可以自己設置最大遞歸層數

?

解釋含有 return 返回值的遞歸,記住 return的返回流程是:先計算,再返回 ,來看下一段求階乘的代碼:?

def jie_cheng(n):

? ? if n <= 1:

? ? ? ? return 1

? ? return n * jie_cheng(n - 1)

? ??

print(jie_cheng(5))

?

?

return 是返回到函數調用者,遞歸函數和普通函數也是一樣的,所以遞歸最后一層空間走到盡頭(一是:指向完畢,二是:遇到return,回顧一下而已)遇到return,就要開始返回了,返回到它的調用者(即是阻塞的位置),直到回到最外層空間如果上面的內容看懂了的話,試著解析下:下面這段代碼的執行流程?

def get_num(num):

? ? if num > 2:

? ? ? ? get_num(num - 1)

? ? print(num)

?

?

get_num(4) # 輸出結果為:2 3 4

?

?

?

?代碼變化一下:?

?

def get_num(num):

? ? if num > 2:

? ? ? ? get_num(num - 1)

? ? else:

? ? ? ? print(num)

?

?

get_num(4) # 輸出結果為 2

?

'''

解析一下:加了else后,首先代碼區有兩個分支,

在num>2時,執行會有遞歸,當n=4 是開辟一層空間;

n=3時開辟一層空間,此時 get_num(2) 再開辟一個空間,

當它從上往下執行過程中,在他本層空間遇到if num>2 不成立,所以走分支 else,直接打印出來;

此時代碼還沒結束,回到上一層空間,num=3, num>2 已經進入了if 不會走else,

num=4 也不會走else,所以這兩層空間沒有值輸出!

'''

?

?return 返回值 詳解?

上面這一大部分,就算是遞歸入門了,接下來才剛剛開始哦!還要繼續講 return ;先來看下這幾段代碼:求全排列的一部分遞歸代碼,試著分別寫出運行結果,并依次分析原因↓↓↓?

# 例1:

def fullpermutation(list):

? ? if list is None:

? ? ? ? return None

? ? if len(list) == 1:

? ? ? ? return [list]

? ? res = []

? ? pivot = list[0]

? ? remain = fullpermutation(list[1:])

? ? print(remain)

?

?

print(fullpermutation([1, 2, 3]))??

'''

輸出結果為:

[[3]]

None

None

'''

?

遞歸只會在兩種情況下觸發“回”的過程,上述是在最后一層空間是碰到了return,所以給回到它的調用處(阻塞處),因為return會給調用者返回一個值,所以在本層空間,remain接收到了一個值:[[3]];接著執行下面的代碼,即是打印remain,所以輸出“[[3]]”,執行完print,等于回到了上一層空間,又到了調用處(阻塞處),那么這層空間還有返回值嗎?答案是沒有,所以“最后一層空間是碰到了return 給它返回的值 只會給最后一層使用”,所以接下來兩層都是打印空!?

# 例2:

def fullpermutation(list):

? ? if list is None:

? ? ? ? return None

? ? if len(list) == 1:

? ? ? ? return [list]

? ? res = []

? ? pivot = list[0]

? ? return fullpermutation(list[1:])

?

?

print(fullpermutation([1, 2, 3]))

'''

輸出結果為:

[[3]]

'''

?

這次是,在最后一層返回時,獲得了一個返回值 [[3]] ,然后回到上一層時,前面又有return 表示需要把本層的返回值,返回到上層的接收處,重復,直到回到最外層,這個從底層傳上來的返回值,一直傳到了最外層,所以才打印出來的,只有最后一層,但是每次一層都獲得了返回值,和例子1 后面兩層沒有返回值是不同的哦!?

# 例3:

def fullpermutation(list):

? ? if list is None:

? ? ? ? return None

? ? if len(list) == 1:

? ? ? ? return [list]

? ? res = []

? ? pivot = list[0]

? ? remain = fullpermutation(list[1:])

? ? print(list)

?

?

print(fullpermutation([1, 2, 3]))

'''

輸出結果為:

[2, 3]

[1, 2, 3]

None

'''

?

最后一層碰到return,觸發會的過程,回到調用處,執行阻塞處下面的代碼,打印list,這個list是什么?它就是本層空間 參數的規模(因為代碼寫的是規模不斷變小從[1,2,3]>>>[2,3]>>>[3]),顯然,從最后一層回到上一層,此時規模是[2,3],所以打印list 就是[2, 3];接著繼續回到上一層,即是最外層,規模是[1,2,3],所以打印[1, 2, 3],最后的None是因為最外層函數,沒有返回值,所以才打印出None?

# 例4:

def fullpermutation(list):

? ? if list is None:

? ? ? ? return None

? ? if len(list) == 1:

? ? ? ? return [list]

? ? res = []

? ? pivot = list[0]

? ? remain = fullpermutation(list[1:])

? ? return list

?

?

print(fullpermutation([1, 2, 3]))

'''

輸出結果為:

[1, 2, 3]

'''

?

依照上面的步驟,觸發回的過程,只要沒有到達最外層,return list 返回本層的規模(參數規模),那么這個返回值就會給本層的接收者 remain 不可能給最外層的接收者,雖然這里沒有打印 remain的值,但是這里的remain和第一個列子中的remain,后面層數是有返回值的哦(下面例子就會體現),本例,返回到最外層時,list的本層規模為 [1,2,3] 最外層接收者接收到,然后打印出來,所以是[1,2,3]?

# 例5:

def fullpermutation(list):

? ? if list is None:

? ? ? ? return None

? ? if len(list) == 1:

? ? ? ? return [list]

? ? res = []

? ? pivot = list[0]

? ? remain = fullpermutation(list[1:])

? ? print(remain)

? ? return list

?

?

print(fullpermutation([1, 2, 3]))

'''

輸出結果為:

[[3]]

[2, 3]

[1, 2, 3]

'''

?

看上面的例子,這次我們是打印了 remain,因為返回的過程中,指向阻塞處(調用處)下面的代碼,每次return list 即是 在本層返回 當前的參數規模,所以 remain 是能接收本層的返回值的,所以會打印 [[3]] ,[2, 3] ;最后 [1, 2, 3] 是最外層打印的?

# 例6:

def fullpermutation(list):

? ? if list is None:

? ? ? ? return None

? ? if len(list) == 1:

? ? ? ? return [list]

? ? res = []

? ? pivot = list[0]

? ? remain = fullpermutation(list[1:])

? ? print(remain)

? ? print(list)

? ? return list

?

?

print(fullpermutation([1, 2, 3]))

'''

輸出結果為:

[[3]]

[2, 3]

[2, 3]

[1, 2, 3]

[1, 2, 3]

'''

?

?這個,就是所有的融合;通過上面的代碼我們來總結下return的返回值:最后一層遇到的return 需要執行 回的過程,此時的返回值 值會返回給最后的調用處的接收者;然后執行 阻塞處下面的代碼時,如果又遇到return 這里的返回值,如果沒有到達最外層,都是給本層的接收者!為什么要大費周章的講這個,是因為我們在寫遞歸時,往往不清楚return 要怎么寫,已及它的返回值是什么?接下來就要看下return 如何解決問題的? 請用遞歸完成一個字符串的反轉,輸入字符串“abcd”,完成翻轉成“dcba” 除了遞歸,我們可以直接用字符串的切片來完成,如下,但是這里是要講遞歸的思想,不體現方法優劣!??

s="abcd"

print(s[::-1])

?

想一下遞歸的思路該怎么做? 思路一:按照上面的例子,不斷的劃分子規模,我們選的是劃分原字符串的規模,都是往后截取的,比如第一次參數s=“abcd” 我們取參數s[1:] ,不斷調用函數,每次傳入參數為:‘bcd’ ‘cd’ ‘d’ ,這樣最后一層返回d 我們能拿到最后一個值,然后最后一個返回值d 加上 當前規模的第一個值,就完成了反轉,具體代碼如下:?

def str_reverse(s):

? ? if len(s) <= 1: # 遞歸出口

? ? ? ? return s

? ? # last = str_reverse(s[1:])

? ? # return last + s[0]

? ? return str_reverse(s[1:]) + s[0] # 每次返回最后一層的值,加上當前規模的第一個值

?

思路二:改變下子規模,我們這次不劃分原字符串,而是從它的索引下手,傳入最后一個元素的索引,不斷去遞歸索引的值,這時,變的是end的值,從 3 到 2 1 0,到0時觸發回的過程,返回當前索引的值,即是 a (不斷向前取值),這時我們再加上當前層的s,因為沒有劃分s所以s每一層都是等于‘abcd’的,我們每次取當前end索引指向的字符串的值,等于從前往后遍歷字符串 ‘abcd’ ,兩部分鏈接起來,就完成了反轉:每次的返回值為 a, ba , cba, dcba,?

def reve(str, end):

? ? if end == 0:

? ? ? ? return "" + str[0]

? ? last = str[end] + reve(str, end - 1)

? ? return last

?

?

s = "abcd"

print(reve(s, len(s) - 1))

?

?兩種做法都用到return,而是還有重要的遞歸思路,下面就來看看遞歸要用什么思路來解? 來試下“反轉鏈表”如何用遞歸做,首先對于一個單鏈表,要對它反轉,我們的思路依舊可以通過不斷向后劃分子規模,找到它的最后一個結點,然后從后往前依次改變每個結點的指向,讓最初的頭結點變成尾結點,讓它最后指向None;那么具體步驟是:用遞歸找到最后一個結點,我們可以通過前一個結點的next區域,不斷遞歸,找到下一個結點,直到當前結點的next是None,說明它就是最后一個結點,這也是我們遞歸的出口,那么依次讓它返回,同時改變指向,就完成了,具體看下面的圖解:??

class ListNode:?

? ? def __init__(self, x):

? ? ? ? self.val = x

? ? ? ? self.next = None

?

?

class Solution:

? ? def ReverseList(self, pHead):

? ? ? ? if pHead is None: # 判斷傳入的頭結點是否為空

? ? ? ? ? ? return None

? ? ? ? if pHead.next is None: # 如果只有一個結點,直接返回結點;同時也是遞歸的出口

? ? ? ? ? ? return pHead

? ? ? ? last_node = self.ReverseList(pHead.next) # last_node永遠只接收到了最后一個結點

? ? ? ? pHead.next.next = pHead # 后一個結點,指向前一個結點

? ? ? ? pHead.next = None # 前一個結點,在不同的層,先指向None,如果到達最外層也會指向None

? ? ? ? return last_node # 最后返回最后一個結點,表示反轉成功

?

到達最后一層,觸發回的過程,返回 last_node 結點給最后第四層,執行阻塞處下面的代碼,因為pHead.next.next 是None,它不用改變也行,直接到 return last_node 把 last_node給第三層用… 第三層獲得 last_node ,執行阻塞處下面的代碼,改變指向,pHead.next.next 是“5結點”,它的指針指向 pHead,即是上一個結點,然后上一個結點指向None;因為這里并不需要用一個temp 來保存前一個指針信息,表面上是斷開鏈接,會丟掉數據,其實不會丟掉,因為他們不再同一層;可以用temp先保存前一個結點的數,這屬于遞歸的寫,在我的文章>>>反轉鏈表多種解法 有提到,這里不細說!? 直到 回到最外層,起初的頭結點,自然會指向None,最后返回 last_node即可 這才是 鏈表反轉 遞歸的詳細過程,果然和我開始理解的不一樣,當初怎么都無法理解,直到用斷點調試,才發現真正的過程,是這樣,大家可以用斷點調試下,看下代碼的具體過程,下面是測試代碼:?

class ListNode:

? ? def __init__(self, x):

? ? ? ? self.val = x

? ? ? ? self.next = None

?

?

class Solution:

? ? def ReverseList(self, pHead):

? ? ? ? if pHead is None:

? ? ? ? ? ? return None

? ? ? ? if pHead.next is None:

? ? ? ? ? ? return pHead

? ? ? ? last_node = self.ReverseList(pHead.next)

? ? ? ? print(last_node.val)

? ? ? ? pHead.next.next = pHead

? ? ? ? pHead.next = None

? ? ? ? return last_node

?

? ? def print_list(self, node):? # 打印測試

? ? ? ? if node is None:

? ? ? ? ? ? return None

? ? ? ? while node:

? ? ? ? ? ? print(node.val, end="")

? ? ? ? ? ? node = node.next

? ? ? ? print()

?

?

if __name__ == '__main__':

? ? n1 = ListNode(1)? # 依次實例5個結點

? ? n2 = ListNode(2)

? ? n3 = ListNode(3)

? ? n4 = ListNode(4)

? ? n5 = ListNode(5)

? ? n1.next = n2? # 依次將結點鏈接起來,形成一個鏈表

? ? n2.next = n3

? ? n3.next = n4

? ? n4.next = n5

? ? n5.next = None

?

? ? obj = Solution()

? ? print(obj.ReverseList(n1).val)

? ? # obj.print_list(n1) # 1 2 3 4 5

? ? # obj.print_list(obj.ReverseList(n1))? # 5 4 3 2 1

?

遞歸思路?

?思想: 1.找到當前這個值與上一個值的關系 2.找到程序的出口 有個明確的結束條件 3.假設當前功能已經完成 每次進入更深一層遞歸時,問題規模相比上次遞歸都應有所減少? 遞歸思路: (1)找重復:看哪一部分是 實現函數的變化;每次進入更深一層遞歸時,問題規模相比上次遞歸都應有所減少 (2)找變化:變化的量應該作為參數 (3)找邊界(出口):終止條件? 遞歸可以分為: (1)直接量+小規模子問題 (2)多個小規模子問題 (3) “切蛋糕”思維 (4)找遞推公式,等價交換公式??

二分法和遞歸?

# 二分法一定是在排序好的數據里使用

?

lst = [33, 22, 44, 55, 66, 88, 77, 99, 101, 238, 345, 456, 567, 678, 789]

n = 76

lst.sort()

left = 0

right = len(lst) - 1

?

while left <= right:? # 條件是 開頭<=結尾

? ? middle = (left + right) // 2

? ? if lst[middle] > n:? # 每次用對折后,中間的數和 查找對象比較

? ? ? ? right = middle - 1

? ? elif lst[middle] < n:

? ? ? ? left = middle + 1

? ? elif lst[middle] == n:

? ? ? ? print("找到了")

? ? ? ? break

else:

? ? print("這個數不在列表中")

?

# 遞歸函數來做

lst = [22, 33, 44, 55, 66, 77, 88, 99, 101, 238, 345, 456, 567, 678, 789]

?

?

def func(n, left, right):

? ? if left <= right:? # 邊界

? ? ? ? mid = (left + right) // 2

? ? ? ? if n > lst[mid]:

? ? ? ? ? ? left = mid + 1

? ? ? ? ? ? func(n, left, right)? # 遞歸的入口,目的是再確定一次中間的位置

? ? ? ? elif n < lst[mid]:

? ? ? ? ? ? right = mid - 1

? ? ? ? ? ? func(n, left, right)

? ? ? ? elif n == lst[mid]:

? ? ? ? ? ? print("找到了")

? ? ? ? ? ? return? # 遞歸出口

? ? else:

? ? ? ? print("沒有這個數")

? ? ? ? return? # 遞歸的出口

?

?

func(66, 0, len(lst) - 1)

?

# 升級:如果找到了要求的數,請返回它的索引

?

lst = [22, 33, 44, 55, 66, 77, 88, 99, 101, 238, 345, 456, 567, 678, 789]

?

?

def func(n, left, right):

? ? if left <= right:? # 邊界

? ? ? ? mid = (left + right) // 2

? ? ? ? if n > lst[mid]:

? ? ? ? ? ? left = mid + 1

? ? ? ? ? ? return func(n, left, right)? # 每一層都要返回給上一層的調用者

? ? ? ? elif n < lst[mid]:

? ? ? ? ? ? right = mid - 1

? ? ? ? ? ? return func(n, left, right)

? ? ? ? elif n == lst[mid]:

? ? ? ? ? ? print("找到了")

? ? ? ? ? ? return mid? # 多層函數只會將返回值返回給上一層的調用者

? ? else:

? ? ? ? print("沒有這個數")

? ? ? ? return -1

?

?

print(func(66, 0, len(lst) - 1))

?

尾遞歸?

尾遞歸(自己調用自己,且非表達式:把值放到參數中算)

?

?

>>>求斐波那契數列第n位是幾?(尾遞歸做法)

?

def feibo(num, res, temp):

? ? ?#使用尾遞歸法求解斐波那契數量的第num個數字

? ? ?if num == 0:

? ? ? ? ? return res

? ? ?else:

? ? ? ? ? return feibo(num - 1, temp, res + temp)

?

print(feibo(10,0,1))

?

# 直接遞歸? 尾遞歸 與 循環 的對比

?

import time

?

?

def Fib_recursion(num):

? ? '''

? ? 直接使用遞歸法求解斐波那契數量的第num個數字

? ? '''

? ? if num < 2:

? ? ? ? return num

? ? return Fib_recursion(num - 1) + Fib_recursion(num - 2)

?

?

def Fib_tail_recursion(num, res, temp):

? ? '''

? ? 使用尾遞歸法求解斐波那契數量的第num個數字

? ? '''

? ? if num == 0:

? ? ? ? return res

? ? else:

? ? ? ? return Fib_tail_recursion(num - 1, temp, res + temp)

?

?

def Fib_circle(num):

? ? '''

? ? 直接使用循環來求解

? ? '''

? ? a = 0

? ? b = 1

? ? for i in range(1, num):

? ? ? ? c = a + b

? ? ? ? a = b

? ? ? ? b = c

? ? return c

?

?

if __name__ == '__main__':

? ? num_list = [5, 10, 20, 30, 40, 50]

? ? for num in num_list:

? ? ? ? start_time = time.time()

? ? ? ? print(Fib_recursion(num))

? ? ? ? end_time = time.time()

? ? ? ? print(Fib_tail_recursion(num, 0, 1))

? ? ? ? end_time2 = time.time()

? ? ? ? print(Fib_circle(num))

? ? ? ? end_time3 = time.time()

? ? ? ? print('正在求解的斐波那契數字下標為%s' % num)

? ? ? ? print('直接遞歸耗時為 :', end_time - start_time)

? ? ? ? print('尾遞歸調用耗時為:', end_time2 - end_time)

? ? ? ? print('直接使用循環耗時為:', end_time3 - end_time2)

?

遞歸練習題?

>>>打印f-e的數:

?

def pri(f, e):

? ? if f > e:

? ? ? ? return

? ? else:

? ? ? ? print(f)

? ? ? ? return pri(f + 1, e)

?

?

pri(1, 6)

?

?

>>>求一個列表的和:

def sum_lis(li, f):? # 如果單獨是傳入一個列表,它體現不了變化

? ? """

? ? :param li: 傳入一個列表

? ? :param f: 列表起始位置

? ? :return: 列表和

? ? """

? ? if f == len(li) - 1:? # 表示起始位置也是結束位置,即只有一個元素

? ? ? ? return li[f]

?

? ? return li[f] + sum_lis(li, f + 1)

?

?

print(sum_lis([1, 2, 3, 4, 5], 0))

?

# 多引入一個 變化的參數,可以想到第一個元素加上剩下的元素,規模不斷變小

?

# 需求:求 1+2+3+4........100 的和

num = 1

count = 0

while num <= 100:

? ? count += num

? ? num += 1

print(count)

?

'''

思路:

sum(1) + 2 +3.....100

sum(2) + 3........100

sum(3) + 4........100

...

sum(98)+99+100

sum(99) + 100

sum(100)

?

sum(100) = sum(99) + 100

sum(99) = sum(98) + 99

sum(98) = sum(97) + 98

.....

?

sum(2) = sum(1) + 2

?

sum(1) = 1

'''

# 用遞歸函數解決

def sum(num):

? ? if num == 1:? # 出口

? ? ? ? return 1

? ? return num + sum(num - 1)? # 一直返回sum(num-1)+num,每次遞歸調用,有return才能有返回值

?

?

print(sum(100))

?

>>>需求:打印斐波那契數列

def fibo(num):? # 參數是表示第n個斐波那契數,函數整體表示獲取斐波那契數列中第n個數字的值

? ? if num == 1 or num == 2:? # 第一個和第二個都是1

? ? ? ? return 1? # 返回1,出口

? ? return fibo(num - 1) + fibo(num - 2)? # 規律,后一項加上后兩項,就等于斐波那契數列第n個數字的值

?

?

if __name__ == '__main__':

? ? list_num = []? # 創建一個空列表,開始

? ? for i in range(1, 21):? # 遍歷1-20

? ? ? ? list_num.append(fibo(i))? # 注意這里開始調用函數,獲得一個斐波那契數字,將獲取到的值填充到list_num

? ? print(list_num)

?

?

# 最佳解法:

def fei_bo(n):

? ? if n <= 1:

? ? ? ? return (n, 0)

? ? else:

? ? ? ? (a, b) = fei_bo(n - 1)

? ? ? ? return (a + b, a)

?

?

print(fei_bo(5))

# 這里是線性的解法,不再重復計算前一項已知的數

?

# 求最大公約數

def maxg(m, n):

? ? if n == 0:

? ? ? ? return m

? ? return maxg(n, m % n)

?

?

print(maxg(6, 0))

?

# 最大公約數:

# 如果m%n=0 則n是m的最大公約數;例如4%2=0 則2是最大公約數?

# 如果m%n=K 則 n%k=?0 >>> f(m,n)=f(n,m%n)

?

?

>>>用遞歸實現列表排序:

def ins(li, k):

? ? if k == 0:

? ? ? ? return

? ? # 對前K個元素進行排序

? ? ins(li, k - 1)

? ? # 把位置K的元素插入到前面的部分

? ? x = li[k]

? ? index = k - 1

? ? while x < li[index]:

? ? ? ? li[index + 1] = li[index]

? ? ? ? index -= 1

? ? li[index + 1] = x

? ? print(li)

?

?

ins([1, 4, 3, 2], 3)

?

>>>需求:遞歸實現遍歷目錄

?

import os

?

?

def get_alldirfile(source_path):? # 定義一個函數獲取用戶輸入的路徑名下所有目錄和文件

? ? if not os.path.exists(source_path):? # 判斷用戶輸入的目錄是否存在

? ? ? ? return? # 不存在,直接返回,結束該函數,找到一個出口

? ? list_name = os.listdir(source_path)? # lisdir獲取所有目錄,并全部放到一個列表中

? ? for flie_dirname in list_name:? # 遍歷下所有的文件目錄名

? ? ? ? abs_path = os.path.join(source_path, flie_dirname)? # 拼接成絕對路徑

? ? ? ? # 判斷下一級是否是目錄還是文件,是文件結束,是目錄繼續深入,直到是文件結束

? ? ? ? if os.path.isfile(abs_path):? # 是文件

? ? ? ? ? ? print("file_path:%s" % (abs_path))

? ? ? ? # 也可進行復制操作,open(abs_path,"w",encoding="utf-8")

? ? ? ? if os.path.isdir(abs_path):

? ? ? ? ? ? get_alldirfile(abs_path)? # 遞歸函數

?

?

if __name__ == '__main__':

? ? path = r"F:\日語\快樂50音"

? ? get_alldirfile(path)

?

# 優化

import os

?

?

def file_get(file_path, n):

? ? list_file = os.listdir(file_path)

? ? for file in list_file:

? ? ? ? abs_file = os.path.join(file_path, file)

? ? ? ? if os.path.isdir(abs_file):

? ? ? ? ? ? print("\t" * n, file)

? ? ? ? ? ? file_get(abs_file, n + 1)

? ? ? ? else:

? ? ? ? ? ? print("\t" * n, file)

?

?

file_get("D:\KuGou", 1)

總結

以上是生活随笔為你收集整理的[转载] Python 递归 深入理解递归 Python递归剖析,绝对让你看懂!的全部內容,希望文章能夠幫你解決所遇到的問題。

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

国产色黄网站 | 国产精品久久久久久久久久白浆 | 97精品超碰一区二区三区 | 婷婷丁香社区 | 久久黄色小说 | 992tv在线成人免费观看 | 国产不卡在线观看 | 国产视频一二区 | 午夜视频色 | 伊人久久国产 | 亚洲成人资源在线观看 | 97在线观看免费 | 91试看 | 国产视频2 | 黄色一级在线免费观看 | 五月天国产 | a黄色片在线观看 | 久艹视频在线免费观看 | 亚洲黄色小说网 | 国产成人专区 | 久久综合色一综合色88 | 97超碰伊人| 在线观看一级片 | 亚洲乱码精品久久久 | 欧美日韩不卡在线视频 | 日韩在线三区 | 精品国产成人在线 | 日日夜夜天天干 | 黄色亚洲片 | 精品一二三区视频 | 韩国av三级 | 99热最新在线 | 成人av在线影视 | 天天色天天综合 | 亚洲精品视频中文字幕 | 91视频黄色| 伊人春色电影网 | 国产亚洲精品v | 成人在线视频一区 | 久久久久国产精品免费免费搜索 | 成人免费观看a | 97干com | 欧美国产日韩激情 | 激情在线五月天 | 国产99久久九九精品免费 | 久久成人在线视频 | 中文字幕一区二区三区四区 | 天天做天天干 | 国产亚洲永久域名 | 欧洲高潮三级做爰 | 免费黄色激情视频 | 婷婷精品国产一区二区三区日韩 | 九九久久国产 | 国产伦理精品一区二区 | 在线观看www.| 欧美日韩色婷婷 | 91精品国自产在线 | 97人人爽人人 | 国产a级片免费观看 | 中文字幕在线观看一区二区三区 | 一区av在线播放 | 黄网av在线 | 五月激情五月激情 | 成人免费视频网 | 日韩欧美在线国产 | 女人18精品一区二区三区 | 亚洲人成免费网站 | 久久99精品久久久久久秒播蜜臀 | 日韩在线免费视频 | 亚洲丝袜一区二区 | 欧美日韩国产三级 | 日韩国产精品久久 | 国产男男gay做爰 | 一区二区三区在线免费播放 | 国产日韩中文在线 | 九九导航 | 国产精品久久久久久99 | 成人免费观看在线视频 | 亚洲综合丁香 | 91成人短视频在线观看 | 黄色小说在线免费观看 | 黄色一级在线视频 | 欧美在线资源 | 人交video另类hd | 又色又爽又黄高潮的免费视频 | 国产精品av免费在线观看 | 黄色成人91 | 黄色福利视频网站 | 亚洲色影爱久久精品 | 久久久国产精华液 | 在线不卡a| 久精品视频免费观看2 | 91网址在线观看 | 在线不卡的av | 日韩视频欧美视频 | 在线观看av麻豆 | 欧美视频日韩视频 | 最新中文字幕在线播放 | 欧美a级成人淫片免费看 | av免费福利 | 99精品视频在线播放免费 | 精品国产欧美一区二区三区不卡 | 欧美日产一区 | 国产在线不卡 | 热久久免费视频精品 | 日韩xxxxxxxxx| 国产乱码精品一区二区蜜臀 | 国产一区成人在线 | 欧美少妇xxx | 激情六月婷婷久久 | 亚洲国产一区在线观看 | 成人午夜影视 | 四虎影视成人 | 丁香五月缴情综合网 | 婷婷婷国产在线视频 | 亚洲激情五月 | 久久久久久久久毛片 | 狠狠色综合欧美激情 | 狠狠狠狠狠狠天天爱 | 亚洲免费观看视频 | av888.com| 91xav| 亚洲日本va中文字幕 | 六月激情丁香 | 三级黄色欧美 | 91视频在线免费下载 | 波多野结衣视频一区 | 丁香激情综合久久伊人久久 | 免费欧美精品 | 日日夜夜天天射 | 久久一精品 | 在线观看91久久久久久 | 久久视屏网 | 亚洲国产中文字幕在线视频综合 | 精品99久久| 99热这里只有精品免费 | 性色xxxxhd| 中文字幕久久亚洲 | 91超碰免费在线 | 久久精品视频中文字幕 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | www.天天草| 国产999在线| 制服丝袜亚洲 | www成人精品 | aav在线 | 国产福利精品一区二区 | 成人av影视观看 | 特级大胆西西4444www | 在线 高清 中文字幕 | 日韩免费在线视频 | 中文字幕精品视频 | 视频国产在线 | 久久久精品免费看 | 久艹在线免费观看 | 狠狠干激情 | 欧美日一级片 | 东方av在 | 久草资源在线观看 | 精品一区二区三区四区在线 | 中文av免费| 天天干天天操天天操 | 国产做爰视频 | 午夜精品一区二区三区在线播放 | 亚洲精品在线视频网站 | 国产一级在线播放 | 丝袜美腿在线视频 | 国产麻豆剧传媒免费观看 | 婷婷丁香久久五月婷婷 | 久久免费99精品久久久久久 | 中文字幕在线观看第三页 | 亚洲成人av片 | 99视频在线观看免费 | 久久第四色 | 久久久久草 | 久久久久久不卡 | 一区二区三区在线电影 | 亚洲人人av | 久久9视频 | 婷久久| 99视频免费在线观看 | 亚洲日b视频 | 亚洲欧洲精品一区二区精品久久久 | 国产美女免费观看 | 国产色a在线观看 | 最近久乱中文字幕 | 午夜色大片在线观看 | 国产麻豆视频免费观看 | 99re久久精品国产 | 中文字幕av在线免费 | 国产99爱| 国产精品久久久久久久妇 | 夜夜躁狠狠躁日日躁视频黑人 | 日本三级香港三级人妇99 | 午夜久久久久 | 国产精品久久久久四虎 | 久久人人添人人爽添人人88v | 麻豆传媒视频观看 | 亚洲作爱| 国产精品久久中文字幕 | 国产精品久久久久久久久免费看 | 成人一区二区在线 | 欧美精品久久久久久久久久丰满 | 91日韩精品一区 | 国产成人不卡 | 精品999在线 | 五月天六月色 | 美女黄频视频大全 | 亚洲国产成人久久 | 久久国语露脸国产精品电影 | 丁香一区二区 | 人人插人人费 | 久一在线| 国产馆在线播放 | 成人视屏免费看 | 日韩69视频| 久久免费看a级毛毛片 | 中文字幕在线观看视频免费 | 精品色综合 | 欧美日韩一区二区久久 | 国产精品久久久久久久久费观看 | 婷婷丁香花五月天 | 三级动态视频在线观看 | 一区二区不卡高清 | 特黄色大片 | 国产尤物在线 | 日日夜操| 欧美日韩在线视频免费 | 免费午夜视频在线观看 | 99久久激情视频 | 久久视频一区 | 国产精品久久99综合免费观看尤物 | 国产小视频在线免费观看视频 | 99热这里只有精品免费 | 欧美成人a在线 | 亚洲国产操 | 久热这里有精品 | 国产精品2020 | 亚洲精品国产免费 | 免费观看91 | 欧美va天堂va视频va在线 | 国产日韩欧美中文 | 国产成人av网 | 97电影在线看视频 | 婷婷久草 | 国产精品99免费看 | 亚洲综合日韩在线 | 好看av在线| 在线观看免费成人 | 国产精品区免费视频 | 国产精品videossex国产高清 | 亚洲精品xx | 国产精品免费一区二区三区在线观看 | 激情五月婷婷激情 | 亚洲,播放 | 国产专区在线播放 | 四虎影视成人精品 | 久久av电影 | 中文字幕国产一区二区 | 亚洲成人二区 | 日韩精品久久久久久久电影99爱 | 五月婷香 | 国产在线精品一区二区不卡了 | 狠狠狠狠狠狠干 | 曰韩在线 | 97视频人人| 亚洲激情视频在线观看 | 四虎成人免费观看 | 中文在线a天堂 | 成人免费在线电影 | 三级av在线| 久久免费视频这里只有精品 | 天天射综合网站 | 日韩视频图片 | 欧美性超爽 | 色婷av | 国产午夜一区二区 | 粉嫩av一区二区三区四区五区 | 日韩一级片网址 | 国产成a人亚洲精v品在线观看 | 麻豆mv在线观看 | 亚洲va在线va天堂va偷拍 | 久久午夜影视 | 麻豆一区在线观看 | 久久99精品国产一区二区三区 | 中文字幕在线观看一区二区三区 | 欧美激情在线网站 | 亚洲国产电影在线观看 | 国产精品999久久久 久产久精国产品 | 久久丁香| 亚洲免费av在线播放 | 欧美日韩在线免费观看 | 日韩色综合| 天天干天天想 | 亚洲男男gaygay无套 | 黄色中文字幕 | 亚洲高清av在线 | 国产一区二区精品 | 日韩免费一区二区 | 在线观看国产高清视频 | 操操操日日日干干干 | 狠狠躁18三区二区一区ai明星 | 成人啊 v| 黄色一级大片在线观看 | 国产亚洲激情视频在线 | 美女视频久久久 | 午夜久久精品 | 中文字幕观看视频 | 狠狠色丁香久久婷婷综 | 一级免费观看 | 欧美一区免费在线观看 | 一区二区视 | 日批在线看| 国产精品99久久久久久人免费 | 亚洲无吗天堂 | 91夫妻视频 | 激情五月网站 | 久久一线 | 黄色一级在线观看 | 中文字幕一区二区三区久久 | 欧美与欧洲交xxxx免费观看 | 亚洲区另类春色综合小说 | 久久深夜福利免费观看 | 国产美女免费观看 | 国产99久久精品一区二区300 | 国产亚洲一区 | 成年人在线 | 亚洲精品在线观看的 | 黄色www免费| 亚洲欧洲中文日韩久久av乱码 | 精品女同一区二区三区在线观看 | 99精品欧美一区二区三区 | 欧美日韩在线精品一区二区 | 天天色天天综合 | 日日夜夜精品免费 | 五月天天在线 | av片在线观看免费 | 91精彩视频在线观看 | av在线网站观看 | 欧美色图88 | 精品久久一二三区 | 亚洲三级在线播放 | 日本黄色免费大片 | 精品国内自产拍在线观看视频 | 91久久精品一区 | 在线免费视频a | 欧美精品你懂的 | 男女视频久久久 | 国产在线精品播放 | 国产乱码精品一区二区三区介绍 | www日韩在线 | 午夜免费福利片 | 亚洲性少妇性猛交wwww乱大交 | 亚洲天天在线 | 色婷婷五 | 久久成视频 | 久久综合九色综合97_ 久久久 | 一区二区三区四区在线免费观看 | 伊人国产在线播放 | 久久久穴 | 天天舔天天射天天操 | 久久久久久久久毛片精品 | 日日操天天爽 | 日韩理论片中文字幕 | 色黄视频免费观看 | 欧美日韩在线精品一区二区 | 久久久久观看 | 成人av免费看 | 久久精彩视频 | 国产精品一区二区三区免费视频 | 婷婷激情久久 | 99999精品| www.com.日本一级 | 中文字幕在线一区二区三区 | www国产一区| 狠狠地日 | 四虎www | 久久在线免费观看视频 | 久久成熟 | 国产午夜精品一区二区三区 | 九九热av | 91在线色 | 国产一区二区久久精品 | 亚洲激情综合网 | 国产精品免费视频一区二区 | 精品女同一区二区三区在线观看 | 91成年视频 | 成人黄色一级视频 | 国产精品第二页 | 中文字幕乱码日本亚洲一区二区 | 五月激情久久久 | 中文字幕文字幕一区二区 | 91久色蝌蚪 | 六月婷操 | 欧美激情精品久久久久久变态 | 6699私人影院 | 久久国内视频 | 在线观看免费91 | 中国一级片免费看 | 欧美综合干 | 在线观看蜜桃视频 | 中文字幕五区 | 亚洲精品在线免费观看视频 | 国产成人综合在线观看 | 91人人揉日日捏人人看 | 色偷偷88888欧美精品久久 | 久久99精品久久久久久三级 | 99精品国产aⅴ | avwww在线 | 午夜三级毛片 | 国产日韩欧美自拍 | 91香蕉国产在线观看软件 | 蜜桃视频成人在线观看 | 色是在线视频 | 综合久久综合久久 | 国产一区二区电影在线观看 | 日日夜夜精品 | 国产精品女同一区二区三区久久夜 | 亚洲男模gay裸体gay | 欧美日韩一区二区三区在线观看视频 | 不卡的av电影在线观看 | 国产精品久久精品 | 99在线热播 | 黄色免费视频在线观看 | 亚洲精品男人的天堂 | 人人干干人人 | 久久精品aaa | 亚洲无吗视频在线 | av专区在线 | 精品欧美一区二区三区久久久 | 中文字幕日韩电影 | 国产黄大片在线观看 | 久久精彩免费视频 | 久久久国产精品久久久 | 成人午夜电影在线 | av五月婷婷 | 青青久草在线视频 | 福利网址在线观看 | 91欧美国产| 国产精品久久久久久久久蜜臀 | www.夜夜干.com | 国产99久| av成人免费 | 在线观看中文av | 人人澡人摸人人添学生av | 天天在线视频色 | 成年人国产在线观看 | 激情网在线观看 | 欧美精品久久99 | 国产中文欧美日韩在线 | 国产91在线观 | 亚洲精品国产精品乱码不99热 | 人人网人人爽 | 九色精品免费永久在线 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 开心激情五月网 | 天天操人人要 | 成年人在线 | 国产亚洲精品美女久久 | 99性视频| 日韩一三区 | 99国产情侣在线播放 | 人人爽人人爽人人片av | 国产精品国产三级在线专区 | 欧美日韩中文在线 | 日韩欧美精选 | 一级黄色片在线播放 | 久久影院一区 | 最近2019年日本中文免费字幕 | www五月| 九九视频免费在线观看 | av在线免费观看黄 | 国产精品都在这里 | 国产夫妻性生活自拍 | 日日干网 | 怡红院成人在线 | 亚洲第一伊人 | 99爱视频 | 国产综合小视频 | 在线观看一区二区精品 | 精品国精品自拍自在线 | 久久99婷婷| 色综合天天综合 | 天天操天天色天天射 | 日韩精品一区二区三区外面 | 日批视频在线观看免费 | 黄色国产高清 | 国产一区二区三区在线 | 久久夜色精品国产欧美一区麻豆 | 九九免费在线观看 | 中文字幕在线观看免费高清完整版 | 中文字幕电影一区 | 99久久精品无码一区二区毛片 | 在线国产不卡 | 黄视频色网站 | 久热电影| 丁香激情综合久久伊人久久 | 韩国视频一区二区三区 | 久久久久免费 | 玖玖爱免费视频 | 国产精品久久久久久久久久久久午 | 免费的黄色的网站 | www免费看 | 视频在线精品 | 色网站视频| 久久久wwww| 精品久久久久久久久亚洲 | 黄色成人在线 | 最新动作电影 | 久久久久久久久久久久久久免费看 | 天天草天天干天天射 | 99精品视频在线播放观看 | 成人在线观看你懂的 | 十八岁以下禁止观看的1000个网站 | 国产我不卡 | 国产一级片免费视频 | 在线看毛片网站 | av资源免费看 | 天天操天天操天天 | 欧美aaa大片 | 日本精品久久 | 一区二区三区久久精品 | 中文字幕资源站 | www.夜夜夜 | 天天射天天艹 | 91av视频在线观看免费 | 69中文字幕 | 日韩欧美视频在线 | 日韩欧美亚州 | 在线观看激情av | 人人干在线| 免费亚洲成人 | 国产午夜三级一二三区 | 日本一区二区三区免费观看 | 日韩午夜网站 | 久久成人免费电影 | 国产97视频| 日本公妇在线观看高清 | 色婷婷播放| 国产精品久久久久久久久久免费 | 蜜臀av夜夜澡人人爽人人桃色 | 成人av在线播放网站 | 久久久久久久免费看 | 久草.com| 美女视频黄免费的 | 久久不见久久见免费影院 | 亚洲精品视频网 | 国产大陆亚洲精品国产 | 国产精品麻豆99久久久久久 | 狠狠干.com | 五月天亚洲综合 | 免费黄色在线网站 | 国产精品v欧美精品v日韩 | 国产一区久久 | 国产精品自产拍在线观看桃花 | 久久少妇 | 国产aaa免费视频 | 天天色.com| 超碰97人| 日本精品在线 | 色天堂在线视频 | 免费大片黄在线 | 日韩 精品 一区 国产 麻豆 | 伊人电影在线观看 | 丰满少妇对白在线偷拍 | 国内小视频 | 91在线免费视频 | 婷婷久久一区二区三区 | 一区二区视频电影在线观看 | 久久久久久视频 | 中文字幕精品三级久久久 | 久久国产午夜精品理论片最新版本 | 韩国av永久免费 | 国产专区在线视频 | www.久久com| 欧美日韩另类在线观看 | 久久视频这里有久久精品视频11 | 日韩美女久久 | 免费av影视| 国产精品免费久久久久久久久久中文 | 黄色小说18 | 欧美激情精品久久久久 | 91香蕉视频黄 | 久久精品资源 | 国产丝袜网站 | 国产精成人品免费观看 | 日韩在线免费高清视频 | 毛片网站在线观看 | 国产黄色在线 | 人人看人人 | 欧洲精品视频一区二区 | 成人app在线播放 | 日本精品视频在线观看 | 嫩草91影院| av中文电影 | 亚洲欧洲国产视频 | 日日夜操 | 狠狠躁天天躁 | 久久精品一区二区三区中文字幕 | 国产精品永久在线观看 | 一区二区欧美在线观看 | 亚洲一一在线 | 久草爱 | 在线观看第一页 | 精品国产一区二区三区久久久蜜月 | 美国人与动物xxxx | 中文字幕视频播放 | 成人av在线看 | 亚洲九九 | av综合 日韩| 国产精品粉嫩 | 亚洲爽爽网 | 99国产精品久久久久久久久久 | 色综合天天色 | 黄色片网站 | 久久精品aaa | 99久久精品免费看国产 | 亚洲视频一级 | 91av在线视频播放 | 精品久久久99 | 狠狠干夜夜爽 | 日韩在线免费不卡 | 欧美 亚洲 另类 激情 另类 | 久久免费久久 | 中文字幕av免费在线观看 | 91色在线观看视频 | 五月天中文字幕 | 国产午夜三级一区二区三桃花影视 | 337p日本欧洲亚洲大胆裸体艺术 | 中文字幕观看在线 | 男女视频国产 | 玖玖综合网 | 黄色成人av | 欧美日韩国产色综合一二三四 | caobi视频| 成人香蕉视频 | 久草精品视频在线看网站免费 | 日韩av不卡在线观看 | 国产精品久久久久久久免费观看 | 国产aaa免费视频 | 狠狠干婷婷色 | 国产精品专区在线观看 | 国产视频999 | 最新av在线网站 | 在线观看精品 | 国产一区成人在线 | 色婷婷综合视频在线观看 | 亚洲在线激情 | 色偷偷97 | 国产区高清在线 | 免费久久99精品国产 | 国产日产亚洲精华av | 亚洲理论视频 | 久久美女免费视频 | aaa日本高清在线播放免费观看 | 成人a级免费视频 | 国产免费视频在线 | 欧美va电影 | 99视频在线免费 | 手机看片1042 | 亚洲干| 久草99 | 视频直播国产精品 | 91资源在线观看 | 18+视频网站链接 | 探花视频在线版播放免费观看 | 天天操天操 | 国产亚洲精品久久久久久大师 | 中文字幕av在线播放 | 国产精品久久久久久久久久ktv | 欧美一级视频在线观看 | 久久综合中文字幕 | 成人毛片a | 91成年人网站 | 少妇bbbb搡bbbb搡bbbb | 992tv在线成人免费观看 | 日韩,精品电影 | 免费一级黄色 | 日韩免费电影网站 | 日韩精品视频免费看 | 国产一区二区在线看 | 色婷婷一区 | 成年人看片网站 | 夜夜视频资源 | 91av原创| 欧美精品亚洲精品 | 手机av在线网站 | 久久不卡国产精品一区二区 | 中文字幕在线免费看 | 亚洲天堂社区 | 国产欧美精品一区二区三区四区 | 国产美女免费看 | 波多野结衣视频一区二区三区 | 国产亚洲无 | 国产在线91精品 | 麻豆视频国产在线观看 | 成人av免费在线 | 久久综合婷婷国产二区高清 | 狠狠色伊人亚洲综合网站野外 | 亚洲情婷婷 | av观看网站 | 最近中文字幕国语免费av | www.久久成人 | 人人澡人人添人人爽一区二区 | 丁香五香天综合情 | 狠狠色噜噜狠狠狠狠2022 | 天天射综合网视频 | 黄色小说18| 国产资源在线视频 | 91精品国产成人观看 | 久艹视频在线免费观看 | 久久久免费观看完整版 | 久久久www成人免费精品张筱雨 | 国产成人久久av977小说 | 在线免费av网站 | 96视频在线| 在线观看视频97 | 中文字幕在线播放一区二区 | 亚洲精品免费在线观看 | 中文字幕免费播放 | 亚洲天堂网在线视频观看 | 国产高清 不卡 | 二区在线播放 | 国内精品久久久久影院男同志 | 成人久久毛片 | 久久久国产一区二区三区 | 亚欧洲精品视频在线观看 | 在线观看深夜视频 | 日本在线精品视频 | 国产一区二区三区黄 | 国产精品一区二区电影 | 国产精品不卡在线观看 | 国产精品久久久久久久久久99 | 91在线视频导航 | 久久久久免费看 | www.人人草| 国产精品三级视频 | 久久婷婷精品视频 | 激情婷婷综合 | 久久精品国产99 | 亚洲经典精品 | 人人爽人人爽 | 人成免费网站 | 99久久精品免费看国产 | 欧美日韩中文字幕综合视频 | 日本久久视频 | 992tv人人草 黄色国产区 | 中文字幕亚洲综合久久五月天色无吗'' | 四虎5151久久欧美毛片 | 99久久国产免费,99久久国产免费大片 | 日韩综合视频在线观看 | 91漂亮少妇露脸在线播放 | 色www免费视频 | 综合色婷婷 | 久久 在线 | 天天草视频 | 久草视频网 | www.夜色321.com| 国产成人精品亚洲日本在线观看 | 成人亚洲欧美 | 丁香婷婷综合色啪 | a天堂在线看| 亚洲精品在线播放视频 | 91精品国自产在线观看欧美 | 午夜av电影院 | av色网站 | 久久久免费电影 | 天天干人人干 | 激情综合五月婷婷 | 99精品一区 | 欧美十八 | 久久无码av一区二区三区电影网 | 色噜噜狠狠狠狠色综合久不 | 999国内精品永久免费视频 | 亚洲精品h| 国产精品大片免费观看 | 国产一区精品在线 | 久久伦理电影网 | 日本最大色倩网站www | 中文一区二区三区在线观看 | 国产亚洲人成网站在线观看 | 日韩免费福利 | 免费无遮挡动漫网站 | 国产精品久久久久永久免费看 | 免费人做人爱www的视 | av福利在线免费观看 | 波多野结衣一区二区 | 四虎免费在线观看视频 | 深爱激情婷婷网 | 国产成人精品av久久 | 天天夜夜亚洲 | 色综合天天在线 | 免费国产亚洲视频 | 丁香五月亚洲综合在线 | 91最新视频在线观看 | 热99久久精品 | 成人在线观看免费 | 日韩专区在线播放 | 综合天堂av久久久久久久 | 一区二区不卡 | 黄色一区三区 | 日韩精品视频在线免费观看 | 久久精品国产一区二区三 | 在线看片一区 | 激情在线五月天 | 国产成人在线精品 | 日韩av中文字幕在线 | 高清av免费观看 | 日韩欧美一区视频 | 97超碰在线久草超碰在线观看 | 日本久久久久久 | 日韩欧三级 | 国产精品久久久久久久久久久久 | 最新色视频| 久久91久久久久麻豆精品 | 色综合久久久久网 | 人人干天天射 | 六月色丁香 | 日韩动态视频 | 亚洲激情综合 | 日韩欧美国产成人 | 亚洲综合激情 | 成人免费网站在线观看 | 狠狠gao | 黄色资源网站 | 久久九九影院 | 99热九九这里只有精品10 | 66av99精品福利视频在线 | 亚洲在线视频免费观看 | 精品国产1区2区 | 久久大片 | 97精品国自产拍在线观看 | 国产馆在线播放 | 波多野结衣理论片 | 人人干网 | 免费在线a | 国产精品av久久久久久无 | 久久男人中文字幕资源站 | 国产日韩精品久久 | 麻豆国产精品视频 | 黄网站色欧美视频 | 天天干国产 | 丝袜美女视频网站 | 狠狠操狠狠干天天操 | 国产原创在线 | 亚洲综合成人在线 | 久久视频精品在线观看 | 国产成人一级 | 韩国av三级 | 日批视频在线播放 | 一区二区三区在线影院 | 久久 亚洲视频 | av+在线播放在线播放 | 国产福利不卡视频 | 久久字幕网 | 日韩在线视频免费观看 | 91视频最新网址 | 91一区在线观看 | 最近中文字幕大全中文字幕免费 | 色5月婷婷 | 精品高清美女精品国产区 | 伊人色播 | 日韩免费大片 | 国产aa精品 | 最近2019年日本中文免费字幕 | 国产精品久久久一区二区 | 五月天综合网站 | 久久精品99北条麻妃 | 国产99久久精品一区二区300 | 欧美91精品久久久久国产性生爱 | 国语久久 | 国产精品嫩草69影院 | 最新av中文字幕 | 91久久久国产精品 | 三级性生活视频 | 天天撸夜夜操 | 国产成人久久久久 | 国产不卡av在线播放 | 久草免费手机视频 | 国产亚洲欧美在线视频 | 黄色av一区二区三区 | avav99| 一级一级一片免费 | 色综合天天色 | 激情欧美丁香 | 日日夜夜天天 | 国产伦精品一区二区三区… | 天天操天天射天天舔 | 久久综合免费视频 | 亚洲 欧洲av | 黄色网址a| 久草在线视频免赞 | 国产剧情一区二区在线观看 | www色av| 成人黄色毛片 | 不卡电影一区二区三区 | 久久免费看a级毛毛片 | 91精品国产乱码久久桃 | 狠狠狠色狠狠色综合 | 超碰在线98 | 欧美在线观看禁18 | 国产一级视频在线免费观看 | 国产在线精品区 | 欧美精品一区二区在线观看 | 免费福利视频导航 | 在线观看亚洲专区 | 99视频偷窥在线精品国自产拍 | 免费一级日韩欧美性大片 | 五月开心六月伊人色婷婷 | 亚洲综合精品在线 | 国产 日韩 欧美 自拍 | 欧美色图另类 | 9在线观看免费高清完整版 玖玖爱免费视频 | 亚州免费视频 | 日韩在线高清 | 久久久精品视频成人 | 一区二区久久久久 | 黄色资源在线观看 | av色网站| 国产高清视频免费最新在线 | 97在线观看视频免费 | 亚洲人精品午夜 | 丁香视频在线观看 | 久草观看 | 日韩成人精品一区二区三区 | av在线亚洲天堂 | 日批视频在线观看免费 | 一区二区三区免费在线观看视频 | 亚洲精品国产精品国自产观看 | 日韩在线观看第一页 | 五月婷综合 | 99久久婷婷国产一区二区三区 | 午夜国产一区二区 | 精品国产一区二区三区四区在线观看 | 91视频在线观看免费 | 欧美日韩伦理在线 | 亚洲精品乱码久久 | 天天操操操操操操 | 国产精品青草综合久久久久99 | www.香蕉视频 | 美国三级黄色大片 | 婷婷色综| 人人爱人人做人人爽 | 亚洲成av人片在线观看香蕉 | 国产精品免费人成网站 | 色视频成人在线观看免 | 成人a在线 | 国产网站在线免费观看 | 亚洲精品午夜久久久 | 96视频免费在线观看 | 天天综合成人网 | 国产精品久久久久久久久蜜臀 | 日日日日干 | 久久久国产影院 | 中文在线8资源库 | 不卡精品视频 | 久久国产精品99久久久久久丝袜 | 精品999在线 | 国产美女免费 | 免费精品在线 | 午夜av在线电影 | 91av视频免费在线观看 | 91九色性视频 | 亚洲国产美女久久久久 | 免费在线观看视频a | av成人动漫在线观看 | 99久久日韩精品视频免费在线观看 | 国产伦精品一区二区三区无广告 | 亚洲最大激情中文字幕 | 亚洲欧美日韩在线一区二区 | 久精品视频 | 四虎永久免费在线观看 | 亚洲欧美视频一区二区三区 | 日韩视频一 | 天天艹天天爽 | 丁香激情网 | 最近免费中文字幕mv在线视频3 | 日韩丝袜在线 | aaa亚洲精品一二三区 | 天天操天天射天天插 | 97视频在线观看视频免费视频 | 日韩精品在线免费播放 | 国产精品美女久久久 | 日韩欧美xxxx | 免费在线观看日韩视频 | 亚色视频在线观看 | 九九久久免费 | 91在线免费观看网站 | 中文字幕在线视频免费播放 | 国产成人av电影在线观看 | 激情久久综合 | 国产成人精品一区二区三区福利 | 亚洲天堂视频在线 | 国产69久久久欧美一级 | 精品少妇一区二区三区在线 | 国产精品毛片完整版 | 国产黄网在线 | av高清一区 |