91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳解Python的for和while循環(huán)

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-06-24 16:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Python 的 for 和 while 循環(huán)是靈活并且高級的,語法自然、讀起來像偽代碼。而 Cython 也支持 for 和 while,無需修改。但由于循環(huán)通常占據(jù)程序運行時的大部分時間,因此我們可以通過一些優(yōu)化,確保 Cython 能夠將 Python 循環(huán)轉換為高效的 C 循環(huán)。

n=100
foriinrange(n):
 ...

上面是一個標準的 Python for 循環(huán),如果這個 i 和 n 是靜態(tài)類型,那么 Cython 就能生成更快的 C 代碼。

cdef Py_ssize_t i, n = 100
for i in range(n):
    ...
# 這段代碼和下面的C代碼是等效的
"""
for (i=0; i

所以當通過 range 進行循環(huán)時,我們應該將 range 里面的參數(shù)以及循環(huán)變量換成 C 的整型。如果不顯式地進行靜態(tài)聲明的話,Cython 就會采用最保守的策略:

cdef Py_ssize_t n = 100
for i in range(n):
    print(i + 2 ** 100)

在循環(huán)的時候,如果我們使用了變量 i,那么在和一個數(shù)字相加的時候,由于 Cython 無法確定是否會發(fā)生溢出,因此會保守的選擇 Python 的整型。

如果我們能保證表達式中一定不會發(fā)生溢出,那么可以顯式地將 i 也聲明為 C 的整數(shù)類型。

當然不光是整型,其它的 Python 類型也可以提前聲明,舉個例子:

cdef list lst = [
    {"name": "satori", "age": 17},
    {"name": "koishi", "age": 16},
    {"name": "marisa", "age": 15},
]

# lst 里面都是字典,在遍歷之前可以提前聲明好
cdef dict item
for item in lst:
    print(f"{item['name']}, {item['age']}")
"""
satori, 17
koishi, 16
marisa, 15
"""

# 通過 cdef dict item 提前聲明循環(huán)變量的類型
# 然后遍歷以及操作的時候,速度會快很多
# 因為我們實現(xiàn)了基于類型的優(yōu)化

以上是 for 循環(huán),至于 while 循環(huán)也是同理,說白了還是規(guī)定好類型,實現(xiàn)基于類型的優(yōu)化。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 循環(huán)
    +關注

    關注

    0

    文章

    92

    瀏覽量

    16655
  • C代碼
    +關注

    關注

    1

    文章

    90

    瀏覽量

    15182
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

    90013
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    功率循環(huán)基礎篇(二) —— 功率循環(huán)壽命曲線解讀

    功率循環(huán)壽命曲線是評估功率半導體器件(如 ?IGBT?模塊)在溫度交變應力下長期可靠性的核心工具。該曲線通常以 結溫波動幅度?ΔTj 為橫坐標,以器件達到指定失效判據(jù)前所經歷的 循環(huán)次數(shù)?Nf 為
    的頭像 發(fā)表于 03-02 11:55 ?39次閱讀
    功率<b class='flag-5'>循環(huán)</b>基礎篇(二) —— 功率<b class='flag-5'>循環(huán)</b>壽命曲線解讀

    1688 商品詳情 API 調用與數(shù)據(jù)解析 Python 實戰(zhàn)

    你想要的是 1688 商品詳情 API 的 Python 調用與數(shù)據(jù)解析實戰(zhàn)方案,核心是完成 API 憑證配置、接口請求(含簽名)、響應數(shù)據(jù)解析、異常處理 的全流程落地,我會提供可直接運行的代碼,并
    的頭像 發(fā)表于 02-10 11:23 ?244次閱讀

    沒有專利的opencv-python 版本

    所有 官方發(fā)布的 opencv-python 核心版本(無 contrib 擴展)都無專利風險——專利問題僅存在于 opencv-contrib-python 擴展模塊中的少數(shù)算法(如早期 SIFT
    發(fā)表于 12-13 12:37

    第4章 C語言基礎以及流水燈的實現(xiàn)(4.5 4.6)

    4.5while循環(huán)語句 在單片機C語言編程的時候,每個程序都會固定的加一句while(1),這條語句就可以起到死循環(huán)的作用。對于while
    的頭像 發(fā)表于 11-06 11:21 ?340次閱讀

    labview初學,請教一下 循環(huán)嵌套的使用

    實現(xiàn)功能:一個while循環(huán)用于讀取200smart plc的一個點位變化,通過這個點位變化,往表格里面插入當是日期和時間數(shù)據(jù),點位變化(從0到1或者從1到0)就插入一次數(shù)據(jù),不知道如何實現(xiàn),還請各位高手幫幫忙。*附件:學習.zip
    發(fā)表于 10-23 17:48

    淘寶商品詳情接口(item_get)企業(yè)級全解析:參數(shù)配置、簽名機制與 Python 代碼實戰(zhàn)

    本文詳解淘寶開放平臺taobao.item_get接口對接全流程,涵蓋參數(shù)配置、MD5簽名生成、Python企業(yè)級代碼實現(xiàn)及高頻問題排查,提供可落地的實戰(zhàn)方案,助你高效穩(wěn)定獲取商品數(shù)據(jù)。
    的頭像 發(fā)表于 09-26 09:13 ?834次閱讀
    淘寶商品詳情接口(item_get)企業(yè)級全解析:參數(shù)配置、簽名機制與 <b class='flag-5'>Python</b> 代碼實戰(zhàn)

    人工智能行業(yè)如何使用for循環(huán)語句進行循環(huán)

    人工智能行業(yè)可以使用以下是關于for循環(huán)在不同編程語言中的基本用法說明: Python中的for循環(huán): 主要用于遍歷序列(列表、元組、字符串等) 典型結構:for item in sequence
    的頭像 發(fā)表于 09-10 12:55 ?561次閱讀

    termux調試python猜數(shù)字游戲

    用termux做一個猜數(shù)字游戲 下面是在Termux中創(chuàng)建猜數(shù)字游戲的步驟及完整實現(xiàn)方案,結合Python實現(xiàn)(最適配Termux環(huán)境): ? 一、環(huán)境準備(Termux基礎配置) 1.
    發(fā)表于 08-29 17:15

    termux如何搭建python游戲

    ((800, 600)) pygame.display.set_caption(\"Termux Python Game\") running = True while
    發(fā)表于 08-29 07:06

    Python中字符串逆序有幾種方式,代碼是什么

    對于一個給定的字符串,逆序輸出,這個任務對于python來說是一種很簡單的操作,畢竟強大的列表和字符串處理的一些列函數(shù)足以應付這些問題 了,今天總結了一下python中對于字符串的逆序輸出的幾種常用
    的頭像 發(fā)表于 08-28 14:44 ?1076次閱讀

    python app不能運行怎么解決?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    發(fā)表于 08-06 06:27

    基礎篇3:掌握Python中的條件語句與循環(huán)

    Python編程語言中,條件語句和循環(huán)是構成復雜邏輯和數(shù)據(jù)處理的基石。本篇基礎教程將幫助您深入了解Python中的條件語句和循環(huán)結構,讓您能夠更好地控制程序流程。 條件語句 條件語句
    發(fā)表于 07-03 16:13

    一個串口上位機,采用生產消費結構,但是消費循環(huán)運行跟不上生產循環(huán),到時最終輸出支持不了高頻率傳輸。如何優(yōu)化

    報文拆分是生產者,和校驗與是消費者。兩個vi放入并行循環(huán)。生產者vi主體結構是一個while循環(huán)加條件判斷停止循環(huán),消費者vi結構是一個for循環(huán)
    發(fā)表于 06-11 09:26

    ?如何在虛擬環(huán)境中使用 Python,提升你的開發(fā)體驗~

    RaspberryPiOS預裝了Python,你需要使用其虛擬環(huán)境來安裝包。今天出版的最新一期《TheMagPi》雜志刊登了我們文檔負責人NateContino撰寫的一篇實用教程,幫助你入門
    的頭像 發(fā)表于 03-25 09:34 ?809次閱讀
    ?如何在虛擬環(huán)境中使用 <b class='flag-5'>Python</b>,提升你的開發(fā)體驗~

    零基礎入門:如何在樹莓派上編寫和運行Python程序?

    在這篇文章中,我將為你簡要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運行一個簡單的Python程序。什么是Python程序?
    的頭像 發(fā)表于 03-25 09:27 ?2013次閱讀
    零基礎入門:如何在樹莓派上編寫和運行<b class='flag-5'>Python</b>程序?