成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

避坑指南!Python里面的這九個坑,坑的就是你!

開發 后端
Python里面有一些坑,讓你防不勝防,菜鳥經常會弄暈,而學習多年的Python老鳥也會時不時中招。小編整理了9個坑,都是會經常碰到的坑,讓你大呼我曾經也碰到過!

 Python里面有一些坑,讓你防不勝防,菜鳥經常會弄暈,而學習多年的Python老鳥也會時不時中招。小編整理了9個坑,都是會經常碰到的坑,讓你大呼我曾經也碰到過!

[[329937]]

雖然是小的問題,但是在實際的項目中,哪怕一個很小的錯誤,都會引起一連串的問題。有的時候,為了找這一個微小的bug要花費很大的力氣,讓人很郁悶。

坑1.lambda自由參數之坑

排序和分組的key函數常使用lambda,表達更加簡潔,但是有個坑新手容易掉進去:

 

但是實際卻輸出: 3,3,3. 定義lambda使用的i被稱為自由參數,它只在調用lambda函數時,值才被真正確定下來,這就猶如下面打印出2,你肯定確信無疑吧。

 

 

正確做法是轉化自由參數為lambda函數的默認參數,就是給i一個默認的值:

 

坑2. 默認參數設置為空

含有默認參數的函數,如果類型為容器,且設置為空:

 

這是可變類型的默認參數之坑,請務必設置此類默認參數為None:

 

坑3.共享變量未綁定之坑

有時想要多個函數共享一個全局變量,但卻在某個函數內試圖修改它為局部變量:

 

應該在f函數內顯示聲明i為global變量:

 

坑4.各種參數使用之坑

4.1) 位置參數必須一一對應,缺一不可

 

但是下面這樣的調用就不ok:

 

4.2) 關鍵字參數必須在位置參數右邊

 

這樣就是不行,關鍵字參數必須在位置參數的右邊

4.3) 可變關鍵字參數

如下x是可變關鍵字參數:

 

但是不能這樣玩:

 

  1. f(1) TypeError: f() takes 0 positional arguments but 1 was given 

坑5 列表刪除之坑

刪除一個列表中的元素,此元素可能在列表中重復多次:

 

考慮刪除這個序列[1,5,5,5,7]中的元素5,結果發現只刪除其中兩個:[1, 5, 7]

原因是這個序列在刪除的時候,動態的縮短,當你第二次循環的時候,已經跳過了一個5。

正確的做法,構造成字典:

 

利用字典的key的唯一性,這樣就能很干凈的刪除了。

坑6.相同值的不可變對象

 

key=1,value=go的鍵值對神奇消失了,這個是什么原因,有點丈二和尚摸不著頭腦。這是因為具有相同值的不可變對象在Python中始終具有相同的哈希值。由于存在哈希沖突,不同值的對象也可能具有相同的哈希值。

坑7.謎一樣的字符串駐留

 

如果上面例子返回True,但是下面例子我們稍微換一下,加入一個@為什么是False:

 

 

這與Cpython 編譯優化相關,行為稱為字符串駐留,但駐留的字符串中只包含字母,數字或下劃線。

坑8.奇怪的for

 

是不是很奇怪,執行了一次for循環之后,i就變成了5,為什么不是執行一次就退出?其實for在Python中的工作方式是這樣的,range(5)生成的下一個元素就被解包,并賦值給目標列表的變量i,所以 i = 5 并不會影響循環。

坑9.生成器的執行時機

 

g為生成器,list(g)后返回[2,4,6],因為每個元素肯定至少都出現一次。所以這個結果這不足為奇。但是,請看下例:

 

這是不是有點不可思議~~ 原因在于,生成器表達式中, in 子句在聲明時執行, 而條件子句則是在運行時執行。

或者我們這樣解釋就明白了:

 

618來襲,雖然Python的電子書很多,但是經典的Python書籍還是要看紙質的書,感覺這樣才有踏實感,而且長時間眼睛閱讀也會舒服一些。

責任編輯:華軒 來源: 菜鳥學Python
相關推薦

2018-01-20 20:46:33

2021-05-07 21:53:44

Python 程序pyinstaller

2021-05-08 12:30:03

Pythonexe代碼

2024-04-03 12:30:00

C++開發

2024-04-24 13:45:00

2021-02-26 00:46:11

CIO數據決策數字化轉型

2020-08-26 07:37:25

Nacos微服務SpringBoot

2021-02-22 17:00:31

Service Mes微服務開發

2023-05-24 10:06:42

多云實踐避坑

2022-03-04 18:11:16

信服云

2020-12-16 10:00:59

Serverless數字化云原生

2021-04-28 09:26:25

公有云DTS工具

2020-09-13 09:19:10

LinuxPython3.6

2024-08-26 08:29:55

2019-02-12 15:07:42

屏幕參數PC

2018-03-26 11:14:13

程序猿bug代碼

2025-05-06 08:21:35

2019-04-24 17:45:24

微服務容器青云

2023-11-01 15:32:58

2025-04-10 11:00:00

Python編程開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区在线 | 免费毛片在线 | 久久一级大片 | 热99视频 | 欧美一级在线观看 | 99久久免费观看 | 亚洲精品一区在线 | 精品久久久网站 | 青青草一区二区三区 | 中文字幕精品一区 | 色综合av | 国产精品日日做人人爱 | 一区二区三区小视频 | 久久精品99国产精品日本 | 日韩欧美在 | 国产乱码精品一区二区三区中文 | 高清一区二区 | 亚洲免费视频播放 | 国产精品揄拍一区二区久久国内亚洲精 | 国产成人综合一区二区三区 | 日韩国产欧美在线观看 | 免费一级毛片 | 日韩中文字幕一区 | 亚洲一区二区精品视频 | 免费观看黄网站 | 精品无码久久久久久国产 | 天天干天天玩天天操 | 欧美一级二级在线观看 | 日韩高清中文字幕 | 日日夜夜av | 国产免费自拍 | 四虎影院在线观看av | 日韩在线播放一区 | 视频一区二区在线观看 | 国产一区二区a | 久久久久久久久久一区 | 91视视频在线观看入口直接观看 | 日韩中文字幕在线视频 | 国产视频亚洲视频 | 欧美日韩一| www亚洲精品 |