女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

詳解Python的for和while循環

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-06-24 16:02 ? 次閱讀

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

n=100
foriinrange(n):
 ...

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

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

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

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

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

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

當然不光是整型,其它的 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 提前聲明循環變量的類型
# 然后遍歷以及操作的時候,速度會快很多
# 因為我們實現了基于類型的優化

以上是 for 循環,至于 while 循環也是同理,說白了還是規定好類型,實現基于類型的優化。

審核編輯:湯梓紅

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

    關注

    0

    文章

    92

    瀏覽量

    16235
  • C代碼
    +關注

    關注

    1

    文章

    90

    瀏覽量

    14657
  • python
    +關注

    關注

    56

    文章

    4823

    瀏覽量

    86085
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    技術干貨驛站 ▏深入理解C語言:嵌套循環循環控制的底層原理

    大家好!在上一節中,我們學習了C語言中的基本循環語句,如for、while和do...while循環。今天,我們將進一步探討嵌套循環
    的頭像 發表于 02-21 18:26 ?421次閱讀
    技術干貨驛站  ▏深入理解C語言:嵌套<b class='flag-5'>循環</b>與<b class='flag-5'>循環</b>控制的底層原理

    Python繪圖Matplotlib快速參考手冊

    ?PYTHON
    發表于 02-07 14:04 ?0次下載

    可靠性溫度循環試驗至少需要幾個循環

    溫度循環作為自然環境的模擬,可以考核產品在不同環境條件下的適應能力,常用于產品在開發階段的型式試驗、元器件的篩選試驗。一、溫度循環測試介紹溫度循環試驗,也稱為熱循環試驗、高低溫
    的頭像 發表于 01-23 15:26 ?390次閱讀
    可靠性溫度<b class='flag-5'>循環</b>試驗至少需要幾個<b class='flag-5'>循環</b>?

    使用Python實現xgboost教程

    使用Python實現XGBoost模型通常涉及以下幾個步驟:數據準備、模型訓練、模型評估和模型預測。以下是一個詳細的教程,指導你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發表于 01-19 11:21 ?1084次閱讀

    AMC7812和STM32F407進行硬件I2C通信,為什么總是停在第三個while循環里?

    )); *buf = I2C_ReceiveData(I2Cx); buf++; num--; } I2C_AcknowledgeConfig(I2Cx,ENABLE); 請問為什么總是停在第三個while循環
    發表于 01-08 07:56

    深入理解C語言:循環語句的應用與優化技巧

    能讓你的代碼更加簡潔明了,還能顯著提升程序執行效率。本文將詳細介紹C語言中的三種常見循環結構——while循環、for循環和do...while
    的頭像 發表于 12-07 01:11 ?496次閱讀
    深入理解C語言:<b class='flag-5'>循環</b>語句的應用與優化技巧

    Python代理技術詳解:從入門到進階

    Python代理技術是一種在網絡編程中廣泛使用的技術,它允許通過代理服務器發送和接收網絡請求。
    的頭像 發表于 11-12 07:06 ?515次閱讀

    求助,While循環和事件結構問題,內有程序文件

    *附件:測試.zip大家好,我設計了一個可以實現控制While循環的程序,如圖 當開關打開時While循環啟動,Add按鈕按一下指示器就加1,當開關關閉時
    發表于 09-20 15:45

    環路測試方法有哪幾種

    環路測試(Loop Testing)是一種軟件測試方法,它通過在軟件內部創建循環來驗證程序的循環結構是否正確。這種方法特別適用于測試循環控制結構,如for循環
    的頭像 發表于 09-12 14:35 ?1523次閱讀

    pytorch和python的關系是什么

    在當今的人工智能領域,Python已經成為了最受歡迎的編程語言之一。Python的易學易用、豐富的庫和框架以及強大的社區支持,使其成為了數據科學、機器學習和深度學習等領域的首選語言。而在深度學習領域
    的頭像 發表于 08-01 15:27 ?3042次閱讀

    Python建模算法與應用

    Python作為一種功能強大、免費、開源且面向對象的編程語言,在科學計算、數學建模、數據分析等領域展現出了卓越的性能。其簡潔的語法、對動態輸入的支持以及解釋性語言的本質,使得Python在多個平臺
    的頭像 發表于 07-24 10:41 ?1045次閱讀

    Python在AI中的應用實例

    Python在人工智能(AI)領域的應用極為廣泛且深入,從基礎的數據處理、模型訓練到高級的應用部署,Python都扮演著至關重要的角色。以下將詳細探討Python在AI中的幾個關鍵應用實例,包括機器學習、深度學習、自然語言處理、
    的頭像 發表于 07-19 17:16 ?2313次閱讀

    如何實現Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些用 Python 實現文件復制的特殊方法。下面我們開始學習這九種不同的方法來實現 Pyt
    的頭像 發表于 07-18 14:53 ?673次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發表于 07-16 10:38 ?1892次閱讀

    用pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?1289次閱讀