<strike id="gcwsi"></strike>
  • <ul id="gcwsi"></ul>

    千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:哈爾濱千鋒IT培訓  >  技術干貨  >  python 高級特性

    python 高級特性

    來源:千鋒教育
    發布人:xqq
    時間:2023-11-06 10:02:46

    Python中,代碼不是越多越好,而是越少越好。代碼不是越復雜越好,而是越簡單越好。請始終牢記,代碼越少,開發效率越高。

    △切片

    取一個list或tuple或字符串的指定索引范圍的部分元素,Python提供了切片(Slice)操作符。

    L[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3,如果第一個索引是0,還可以省略;記住倒數第一個元素的索引是-1。

    △迭代

    如果給定一個list或tuple,我們可以通過for循環來遍歷這個list或tuple,這種遍歷我們稱為迭代(Iteration)。

    在Python中,迭代是通過for...in來完成的。只要作用于一個可迭代對象,for循環就可以正常運行。

    如何判斷一個對象是可迭代對象呢?方法是通過collections模塊的Iterable類型判斷:

    1>>>fromcollectionsimportIterable

    2>>>isinstance('abc',Iterable)#str是否可迭代

    3True

    4>>>isinstance([1,2,3],Iterable)#list是否可迭代

    5True

    6>>>isinstance(123,Iterable)#整數是否可迭代

    7False

    Python內置的enumerate函數可以把一個list變成索引-元素對:

    1>>>fori,valueinenumerate(['A','B','C']):

    2...print(i,value)

    3...

    40A

    51B

    62C

    △列表生成式

    列表生成式即ListComprehensions,是Python內置的非常簡單卻強大的可以用來創建list的生成式。

    寫列表生成式時,把要生成的元素x*x放到前面,后面跟for循環,for循環后面還可以加上if判斷:

    1

    2>>>[x*xforxinrange(1,11)ifx%2==0]

    [4,16,36,64,100]

    △生成器

    在Python中,這種列表元素可以按照某種算法推算出來,一邊循環一邊計算的機制,稱為生成器:generator。

    要創建一個generator,有很多種方法。

    第一種方法很簡單,只要把一個列表生成式的[]改成(),就創建了一個generator:

    1>>>L=[x*xforxinrange(10)]#列表生成式

    2>>>L

    3[0,1,4,9,16,25,36,49,64,81]

    4>>>g=(x*xforxinrange(10))#生成器

    5>>>g

    6at0x1022ef630>

    打印出generator的每一個元素,正確的方法是使用for循環,因為generator也是可迭代對象:

    1>>>g=(x*xforxinrange(10))

    2>>>forning:

    3...print(n)

    4...

    50

    61

    74

    89

    916

    1025

    1136

    1249

    1364

    1481

    定義generator的另一種方法。如果一個函數定義中包含yield關鍵字,那么這個函數就不再是一個普通函數,而是一個generator。

    generator和函數的執行流程不一樣。函數是順序執行,遇到return語句或者最后一行函數語句就返回。而變成generator的函數,在每次調用next()的時候執行,遇到yield語句返回,再次執行時從上次返回的yield語句處繼續執行。但是用for循環調用generator時,發現拿不到generator的return語句的返回值。如果想要拿到返回值,必須捕獲StopIteration錯誤,返回值包含在StopIteration的value中:

    小結

    generator是非常強大的工具,在Python中,可以簡單地把列表生成式改成generator,也可以通過函數實現復雜邏輯的generator。

    要理解generator的工作原理,它是在for循環的過程中不斷計算出下一個元素,并在適當的條件結束for循環。對于函數改成的generator來說,遇到return語句或者執行到函數體最后一行語句,就是結束generator的指令,for循環隨之結束。

    請注意區分普通函數和generator函數,普通函數調用直接返回結果,generator函數的“調用”實際返回一個generator對象。

    以上內容為大家介紹了python高級特性,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。

    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

    猜你喜歡LIKE

    python函數中的參數有哪些?

    2023-11-14

    python中pygal模塊如何使用?

    2023-11-14

    Python描述符中有哪三種方法?

    2023-11-14

    最新文章NEW

    如何使用python any()判斷多元素?

    2023-11-14

    python中doctest庫是什么?

    2023-11-14

    python模塊引入的三種方式

    2023-11-14

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網友熱搜 更多>>