色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

for循環中的局部變量引起的是什么問題

汽車電子技術 ? 來源:Python腳本 ? 作者: IdlePig ? 2023-03-03 15:03 ? 次閱讀

Python中有一個問題:

循環變量泄漏

  • 第一種情況

構造一個實際的環境,當連上WiFi的時候,手機才能更新app,下面的是網絡環境的判斷

圖片

可以看到,這里的 x 是一個在for循環的局部變量,按照正常的理解,

在for循環外面調用 x 應該是報錯的,

但是在Python中,

for循環里面聲明的變量,在for循環結束后,會保留 x 的值。

圖片

上面的輸出的結果,第一個 x 的值當然是 WiFi,

第二個值就是遍歷完列表之后,列表最后一個值4G

  • 第二種情況

那如果我們直接聲明一個全局變量呢,最后輸出的會是最開始的值嗎?

下面的代碼只是加了第3行,初始化了一下全局變量 x:

圖片

輸出的結果:

圖片

還是和第一種情況一樣,

充分說明了Python中,for循環中聲明的臨時變量的值會保留下來,

壞處很明顯,

一個局部變量沒有被銷毀,反而保留了下來,習慣其他語言的程序員寫起來很別扭,

一個不注意,可能還會有bug,一個后面怎么都不會想到的會出問題的地方,

避免起來很簡單,

注意好命名就行,不要隨便命名,全局變量和局部變量同名本來也不是個好習慣。

  • 語法上的規避方法

下面是Python中列表推導式,在Python3中被優化過,

其實看到下圖的紅色波浪線,就大概知道,x 在這種情況下,只是一個局部變量了。

圖片

輸出結果:

圖片

顯而易見,報錯是 x 沒有定義,x 已經被當作是局部變量了

  • 我們再試一種情況

聲明一個全局變量 x,值為WiFi,

圖片

輸出結果:

圖片

輸出都是WiFi,第4行的 x 已經沒有影響了。

所以平時要注意Python中的一些坑,

Python易用的同時,也有難用的地方。

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

    關注

    0

    文章

    613

    瀏覽量

    28361
  • for
    for
    +關注

    關注

    0

    文章

    44

    瀏覽量

    15811
  • python
    +關注

    關注

    56

    文章

    4792

    瀏覽量

    84630
收藏 人收藏

    評論

    相關推薦

    labviEW局部變量的效率問題

    我編了一個程序,事件循環結構,沒有像labview風格那樣用很多移位寄存器,代之以大量局部變量。請問各位大師,用大量局部變量的做法會不會影響程序運行效率?和移位寄存器相比,兩種方法各有什么優缺點?請從效率,可讀性,內存空間復雜度
    發表于 04-05 15:34

    Labview慎用局部變量

    `` 對于初學Labview的人來說,局部變量這個東西有時候感覺很方便很好用,但是在這里,我的建議是如果你想寫出一段無論是維護性還是可讀性上都較好的代碼,那么就請慎用局部變量!為什么不建議大家
    發表于 02-25 11:11

    新手的一個局部變量的問題,如圖!

    2,3是1的局部變量,這時一個范例,我不明白為什么1和2要與非又給3,這樣的話當1,2,3為真時,1和2與非后為假,3就為假了,而3又是1的局部變量,1,2就變為假了,循環不就該停止了嗎?怎么還會繼續運行呢?
    發表于 04-25 08:21

    keil局部變量分配地址問題

    使用 請問是什么問題? 我以前理解的都是keil中局部變量都作為靜態變量分配地址的 。。。 難道局部變量keil能自動優化?
    發表于 01-20 12:25

    為什么創建局部變量失敗?

    我都是按照教程上的兩種方法建的局部變量,但是建立局部變量后運行標志變成斷裂。我打開一個例子,例子里面有局部變量,可是當我再建同樣的局部變量的時候發生了同樣的錯誤現象。
    發表于 07-23 22:56

    局部變量與隊列的使用

    大家好,我有一個困擾很久的問題。我想將一個循環里的數據引用到另一個定時循環結構里,如果用局部變量的話會出現數據丟失,但實時性可以保證,如果用隊列的話保證了數據的完整性,但實時性做不到一致,會出現滯后,怎樣能讓數據和實時性都達到要
    發表于 05-22 14:31

    static作用(修飾函數、局部變量、全局變量

    詳細介紹了static作用(修飾函數、局部變量、全局變量)的用法
    發表于 11-17 10:30 ?4次下載

    全局變量局部變量有什么區別

    全局變量是編程術語中的一種,源自于變量之分。變量分為局部與全局,局部變量又可稱之為內部變量
    發表于 12-11 11:58 ?3.3w次閱讀
    全局<b class='flag-5'>變量</b>和<b class='flag-5'>局部變量</b>有什么區別

    單片機靜態局部變量的使用方法

    1.靜態局部變量的值在函數調用結束后不消失而保留原值,即其占用的存儲單元不釋放,在下一次該函數調用時,該變量已有值,就是上一次函數調用結束時的值; 2.靜態局部變量屬于靜態存儲類別,在靜態存儲
    發表于 03-14 14:28 ?3090次閱讀
    單片機靜態<b class='flag-5'>局部變量</b>的使用方法

    關于 函數體內局部變量定義的位置

    關于函數體內局部變量定義的位置
    的頭像 發表于 03-14 11:43 ?2776次閱讀
    關于 函數體內<b class='flag-5'>局部變量</b>定義的位置

    西門子PLC的公共變量局部變量

    局部變量L:PLC內部局部變量用英文字母L標記,其作用與公共變量類似,但它是一種共用的、動態變化的存儲區域,其內容與含義隨著所執行的邏輯塊的不同而改變,它用于寄存僅在邏輯塊內部使用的中間運算結果。
    發表于 03-24 13:41 ?5249次閱讀

    詳解LABVIEW中的局部變量和全局變量

    本文檔的主要內容詳細介紹的是LABVIEW初級教程之局部變量與全局變量的詳細資料說明。
    發表于 03-29 15:00 ?26次下載

    西門子PLC的局部變量使用技巧

    臨時變量是臨時存儲在本地數據區的變量。只有在執行POU時,才使用定義的臨時變量,而在執行POU后,不再使用臨時變量的值。在主程序或中斷程序中,局部變
    發表于 12-13 18:07 ?5270次閱讀

    Python-局部變量與全局變量

    局部變量是在函數內部定義的變量,只能在函數內部使用,函數執行結束后,函數內部的局部變量會被系統回收,不同的函數,可以定義相同名稱的局部變量,相互之間沒有任何關聯
    的頭像 發表于 02-16 15:16 ?890次閱讀
    Python-<b class='flag-5'>局部變量</b>與全局<b class='flag-5'>變量</b>

    for循環里的變量局部變量

    對于一個普通for循環而言,循環變量局部變量。在大多數編程語言中,循環變量只在
    的頭像 發表于 11-23 14:50 ?2720次閱讀
    主站蜘蛛池模板: 老司机午夜影院试看区| 一个色综合久久| 扒开小处30p| 凌馨baby| 在线看片福利无码网址| 黄色三级网站在线观看| 视频一区二区三区蜜桃麻豆| 成年人视频在线免费看| 欧美精品色婷婷五月综合| 4480YY无码午夜私人影院| 久久综合香蕉久久久久久久| 一本道无码字幕在线看| 韩国伦理电影在线神马网| 亚洲 自拍 偷拍 另类综合图区| 高H黄暴NP辣H一女多男| 日韩精品人成在线播放| 啊灬啊灬啊灬快高潮视频| 欧美九十老太另类| gogogo高清在线观看| 女人久久WWW免费人成看片| 中国老太60old mantv| 久久午夜免费视频| 在线天天看片视频免费观看| 久久久久久久久久毛片精品美女 | 国内高清在线观看视频| 亚洲AV 日韩 国产 有码| 国产无遮挡无码视频在线观看不卡 | 国产中文字幕乱码免费| 校园高h肉耽文| 国产在线观看www鲁啊鲁免费| 亚洲国产成人综合| 激情综合色| 曰本女人牲交视频免费| 快播av种子大全| 99RE6国产精品视频播放| 嫩草www视频在线观看高清| ping色堂| 色欲蜜臀AV免费视频| 国产精品爽爽久久久久久无码| 亚洲高清毛片一区二区| 久久高清一本无码|