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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

7月17日每日一答

發布時間:2023/12/2 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7月17日每日一答 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 什么是閉包函數,閉包函數滿足什么樣的條件?請寫一個常見的閉包函數。

所謂的函數閉包本質是函數的嵌套和高階函數。我們來看看要實現函數閉包要滿足什么條件(缺一不可):

1)必須嵌套函數 2)內嵌函數必須引用一個定義在閉合范圍內(外部函數里)的變量——內部函數引用外部變量 3)外部函數必須返回內嵌函數——必須返回那個內部函數

閉包的作用:可以保持程序上一次運行后的狀態然后繼續執行。

我們來看一閉包函數的一個實例

def foo():num=1def add(n):nonlocal numnum += nreturn numreturn add f=foo() print(f(1)) #2 print(f(2)) #4

我們可以用函數閉包來實現一個函數的裝飾器:

我們知道函數裝飾器要滿足如下條件:1、不能改變原來函數的代碼。2、為函數添加新的功能。3、不能改變函數的調用方式。 使用函數閉包完全可以做到這一點。

下面我們的為一個函數,增加統計時間的功能:

import time def foo():time.sleep(3)print('aaa') def decorate(fun):def bibao():start=time.time()fun()end=time.time()print('花費的時間是%d'%(end-start))return bibao foo=decorate(foo) foo() #aaa 花費的時間是3

2 什么是遞歸函數?在遞歸函數的使用中要注意什么地方?

?

其實就是自己調用自己叫函數遞歸:
  默認遞歸是1000次,因為在遞歸的時候,需要暫用內存空間,執行一次
  的時候上面一層的函數依舊在運行,所以必須要有限制。本質上說函數運行
  會占用??臻g,當運行一次就在棧空間加一層,當遞歸次數過多,棧就會溢出

遞歸注意:  

  1.必須有一個明確結束條件,要不就成死循環
  2.每次進入更深一層遞歸時,問題規模相比上次遞歸都應有所減少
  3.遞歸執行效率不高,遞歸層次過多會導致棧溢出

3請用遞歸函數實現10的階乘:10*9*8*7....*1

?

轉載于:https://www.cnblogs.com/zhengyiqun1992/p/11199067.html

總結

以上是生活随笔為你收集整理的7月17日每日一答的全部內容,希望文章能夠幫你解決所遇到的問題。

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