2023-07-19

49生成器

閉包/全局變量讓函數(shù)在退出后還能保留狀態(tài)全局變量污染空間 閉包較復(fù)雜 選生成器

定義:在函數(shù)中用yield表達(dá)式來代替函數(shù)中return語句

實(shí)現(xiàn)生成器的另一種方法:直接使用生成器表達(dá)式


For語句功能:每次在可迭代對(duì)象中獲取一個(gè)數(shù)據(jù)

(Counter)生成器不像列表元組等可迭代對(duì)象,而看作是制作機(jī)器作用即每次調(diào)用時(shí)提供一個(gè)數(shù)據(jù),并且會(huì)記住當(dāng)時(shí)的狀態(tài),而列表元組這些則是容器,存放早已備好的所有數(shù)據(jù)

生成器可以看作是一種特殊的迭代器 首先不走回頭路 第二支持next()函數(shù)


生成器每調(diào)用一次獲取一結(jié)果的特性,使生成器對(duì)象無法使用下標(biāo)索引這種隨機(jī)訪問的方式

生成器表達(dá)式:利用推導(dǎo)的形式獲得生成器的方法

與生成器特性不同,列表推導(dǎo)式會(huì)一下將所有的數(shù)據(jù)生產(chǎn)出來并放到列表中


分別用閉包、生成器 來求斐波那契數(shù)列

由于函數(shù)中沒有設(shè)置結(jié)束條件 用for語句迭代他直到強(qiáng)制退出


50遞歸:函數(shù)調(diào)用自身的過程

函數(shù)之間是可以相互調(diào)用的


要讓遞歸正常工作,必須要有一個(gè)結(jié)束條件,并且每次調(diào)用都會(huì)向著該結(jié)束條件推進(jìn)


用迭代和遞歸來實(shí)現(xiàn)同一個(gè)任務(wù):

求一個(gè)數(shù)的階乘?

定義一個(gè)遞歸函數(shù),參數(shù)就是每次要運(yùn)算的這個(gè)數(shù)值,接著讓參數(shù)每次調(diào)用時(shí)都遞減一下


斐波那契數(shù)列

遞歸存在效率問題,每一次調(diào)用遞歸函數(shù) 它并不會(huì)立刻返回,而是要等到最底層的那個(gè)函數(shù)返回,再一層一層往上走

迭代就是一瞬間的事

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • # Python關(guān)鍵字 部分單詞沒有分類整理按照順序整理的 ``` statements語句 print輸出 qu...
    ZhouLang閱讀 663評(píng)論 0 0
  • 世界上只有一種真正的英雄主義,那就是看清生活的真相之后,依然熱愛生活。 -- 羅曼羅蘭 大家好,我是柒八九。 在如...
    前端小魔女閱讀 700評(píng)論 0 1
  • 〇、前言 本文共108張圖,流量黨請(qǐng)慎重! 歷時(shí)1個(gè)半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍。 ...
    Raxxie閱讀 19,602評(píng)論 17 410
  • 本文的主題都是關(guān)于函數(shù)的??1. 函數(shù)的語法;??2. 函數(shù)的對(duì)象;??3. 函數(shù)裝飾器;??4. lambda表...
    楊強(qiáng)AT南京閱讀 958評(píng)論 0 1
  • 一、基礎(chǔ)知識(shí) 1.數(shù)據(jù)類型 數(shù)據(jù)類型主要有整數(shù)型(整數(shù)連除法都是整數(shù)的,用地板除//,浮點(diǎn)數(shù)(其實(shí)就是小數(shù),這么說...
    最初的美好_kai閱讀 260評(píng)論 0 1

友情鏈接更多精彩內(nèi)容