十個Python初學者常犯的錯誤
下面10個Python初學者常犯的錯誤,并不是真正的代碼錯誤,代碼照樣可以運行,但是不夠Pythonic,因為Python有自己的語言哲學,在代碼的處理上有傳統語言無法比擬的簡潔性和便捷性。
1. 真值比較
初學者經常在if語句中使用==比較符來判斷表達式是否為真值。
這是一種冗余的寫法,其實你可以直接對變量進行檢查。
2 . 字符串連接
很多初學者教程中,他們會告訴你字符串連接直接使用+操作符。
一種更優雅的寫法是使用f-string方式,將變量放置在{} 中,該方法能讓代碼清晰易讀,因為你不需要針對非字符串變量做強制轉換了。
3. open()、close()與上下文管理器
操作文件時,下面的代碼看起來可讀性很好,打開文件、編輯文件、關閉文件。不過在最后你總要是手動去調用close方法來關閉文件。
其實python提供了內置的上下文管理器,操作文件時,使用with關鍵字操作文件,這樣就不需要自己處理文件的關閉操作了,在離開上下文前管理器會自動幫你關閉文件。
4. 檢查列表是否為空
假設你要基于列表做某些操作,操作前需要判斷列表是否為空,初學者通常會使用len方法判斷列表的長度是否為0,并做后續操作。
有經驗的開發者會告訴你,一種更好的方式是直接用列表本身來判斷列表是否為空
5. 字典中獲取key和value
如果你要列出并打印字典中所有元素,首先你要拿到每個元素的key,然后通過key來獲取對應的value。初學者通常將兩個步驟分開處理。
更便捷的方法是,字典的items()方法會返回一個由(key,value)元組構成的迭代對象,
6. 解構賦值
元組在python中是一種固定長度的數據結構,新手在將元組中的元素賦值給多個不同的變量時,他們通常的做法是從元組中逐個賦值給變量
更好的做法是直接在一行代碼中用解構的方式,將元組同時賦值給多個不同的變量。
7. 列表迭代
對于新手來說,用for循環迭代列表中的元素時,他們通常的做法是先拿到列表的長度,然后通過元素的下標索引來獲取值。
其實更專業的做法就是直接迭代列表本身,每次迭代出來的值就是列表中的元素
8. 一個索引用于多個列表
假設你想將兩個列表中的值做加操作,通常,你會從索引0開始循環直到列表的結尾,每次循環將列表項做加操作組成新的列表
python提供了一個更好的方法zip(),它將兩個列表對象重新組合成一個成對出現的tuple元素列表
9. 海象操作符
在python3.8之前,當一個變量作用在if判斷語句上時,要先給他賦值然后再處理
python3.8的海象操作符,讓你的代碼減少重復,看起來更簡潔,你可以將變量的賦值和if判斷一行處理。
10. 不必要的索引
如果有一個文本列表,你想隨下標索引一起打印,可以你單獨定義一個數字變量每次迭代的時候遞增1
一個更為專業的做法是直接用enumerate()方法,每次迭代時,他會返回元素的下標索引和元素本身