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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

day16 递归函数

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day16 递归函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、遞歸 函數

?  為什么要有函數,提高代碼的可讀性,避免重復的代碼,提高代碼的復用性

? ? ?在函數中能用return的不要print

1、遞歸的最大深度997

def foo(n):print(n)n+=1foo(n)
foo(1)
遞歸的最大深度

2、修改遞歸的最大深度

? ? 由此我們可以看出,未報錯之前能看到的最大數字就是997.

 當然了,997是python為了我們程序的內存優化所設定的一個默認值,

 我們當然還可以通過一些手段去修改它:

import sys
sys.setrecursionlimit(2000)
n=0
def func():global nn+=1print(n)func()
func()
# 1997
修改遞歸的最大深度

?3、遞歸的例子

例一:

現在你們問我,alex老師多大了?我說我不告訴你,但alex比 egon 大兩歲。

你想知道alex多大,你是不是還得去問egon?egon說,我也不告訴你,但我比武sir大兩歲。

你又問武sir,武sir也不告訴你,他說他比金鑫大兩歲。

那你問金鑫,金鑫告訴你,他40了。。。

這個時候你是不是就知道了?alex多大

def age(n):if n==4:return 40else:return age(n+1)+2
print(age(1))
#46
年齡的遞歸

詳細解析步驟:

?

4、總結:

? ?在一個函數里面調用自己,默認的遞歸最大限度是1000(不要修改遞歸的最大限度)

? ?往往遞歸都是和循環掛在一起的,人理解循環,神理解遞歸

?二、二分查找算法

def find_2(l,aim,start=0,end=None):if end==None:end=len(l)-1if start<=end:mid=(end-start)//2+startif l[mid]>aim:ret=find_2(l,aim,start,mid-1)return retelif l[mid]<aim:ret=find_2(l,aim,mid+1,end)return retelse:return aim,midelse:print("找不到這個值")
l=[2,3,4,5,6,7,8,9,10,11,12,13,14,15]
print(find_2(l,6))
二分查找算法

?

?

?

例題:

1、階乘的算法 4*3*2*1

def f(n):  if n==1:return 1else:return n*f(n-1)
print(f(4))
階乘的算法

2、斐波那契數列

# 1,1,2,3,4,5,8,13...
# n=10
def fib(n):if n==1 or n==2:return 1else:return fib(n-1)+fib(n-2)
print(fib(10))
斐波那契數列

3、三級菜單:

menu = {'北京':{'海淀':{'五道口':{'sogo':{},'網易':{},'google':{}},'中關村':{'愛奇藝':{},'汽車之家':{},'youku':{},},'上地':{'百度':{},},},'昌平':{'沙河':{'匯德商廈老男孩':{},'北航':{},},'天通苑':{},'回龍觀':{},},'朝陽':{'朝陽大媽' },'東城':{},},'上海':{'閔行':{"人民廣場":{'炸雞店':{}}},'閘北':{'火車戰':{'攜程':{}}},'浦東':{},},'山東':{'高麗':{}},}
def meu_3(menu):while True:for key in menu:print(key)choice=input("選擇:")if choice=="q" or choice=="b":return choiceelif choice in menu and menu[choice]:borq=meu_3(menu[choice])if borq=="q":return "q"
meu_3(menu)

  

?

轉載于:https://www.cnblogs.com/number1994/p/7995111.html

總結

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

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