您好,登錄后才能下訂單哦!
本篇文章為大家展示了Python中通常不應該犯的7個錯誤分別是哪些,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
介紹
Python是一門相對容易掌握的語言,但是由于假設了很多事情,因此犯錯誤非常容易。 此外,這些錯誤可能會在很長一段時間內被忽略。 在我其他前四個菜鳥Python錯誤之前。
避免這些新手Python錯誤
他們可能會工作,但可能會更好。
今天,我將分享更多在Python 3.8中容易犯的錯誤。
№1:+ =
在許多情況下,我當然會犯的一個錯誤是獲取+ =操作數。 假設必須用兩個獨立的操作數來完成加法似乎太容易了,一個用于加法,另一個用于斷言。 幸運的是,Python(以及許多其他編程語言)支持可以同時執行數學運算和斷言運算的操作數。
代替:
x = x + 5
做:
x += 5
№2:位置自變量符號
在大多數現代腳本語言中,可以將兩種主要類型的參數用作函數的參數:
位置和關鍵詞。
在python 3.8發行之前,還沒有辦法表示位置參數,這使得位置參數默認值基本上是不可能的。 但是,由于更改是在Python 3.8中對此進行了更新,因此我們可以使用。 您應該使用它們,因為位置參數是具有出色性能的優質Python代碼的基礎。 如果您的代碼需要用Python補償的一件事,尤其是在機器學習時,那可能就是性能。
關鍵字參數在函數定義時評估一次。 這可能特別不利于遞歸算法的性能。 而且,如果您要編寫成本函數,則絕對必須使用位置參數。 這并不是說根本不應該使用它們,但是,只要有可能,最好使用位置參數。
代替:
def numbers(custom, five=5,ten=10,fifteen=15): total = five + ten + fifteen + custom return(total)
做:
def numbers(custom,\,five=5,ten=10,fifteen=15): total = five + ten + fifteen + custom return(total)
同樣重要的是要記住,此功能是相當新的,因此僅使用位置參數以提高性能的概念將僅限于Python 3.8+
№3:初始化返回
盡管這當然并不常見,并且可能是一個相當大的菜鳥動作,但我已經看到人們嘗試在其初始化函數中執行返回。 在Python的面向對象的世界中,每次實例化類時都會調用__init__函數。 初始化函數對于設置變量,移動數據和構造類型而言非常有用。 功能強大,責任重大,Python的__init__函數應用于類初始化,而不是監視,不循環,不直接執行,僅用于類初始化。 并請(我有經驗的人正在這樣做!)
不要返回init!
(這沒有任何意義!)
№4:循環依賴
當編寫一個大型Python程序包時,每個程序段都可以實現相似的目標,通常,您的程序包將彼此依賴。 這可能會帶來很大的問題,并可能導致一些被稱為"循環依賴項"的事情。 發生這種情況時,當模塊周圍的不同位置嘗試相互訪問時,您可能會遇到問題。
№5:空格還是縮進?
如您所知,Python使用縮進而不是定界符將代碼包含在其他代碼中。 對于許多人來說,這使代碼更易于閱讀和編寫,盡管主觀上我個人鄙視它。 但是,在其他語言中,我通常傾向于使用縮進(Tab鍵)來縮進代碼。但是,根據PEP8,應該為縮進使用四個空格。 老實說,這是我只有在與很多人一起進行項目時才遵循的原則。 對我而言,只要保持一致,我就不會將空格或縮進視為重要的事情,但從正式意義上講,您應該使用空格。 話雖如此,在編寫用于某項工作的實際代碼或需要許多其他用戶遵守的大型項目時,遵循PEP8的標準可能是一個好主意。
№6:塊迭代
當執行迭代的for循環時,編寫全長的for循環可以很容易地在代碼中表達您的想法。 但是,通常,如果您需要執行的操作僅占用一行,則最好循環一行。 這不僅會使您的代碼更漂亮,更簡潔,而且還可以提高性能。
代替:
for i in x: i += 5
做:
[i + 5 for i in x]
№7:實習弦
對于最后一個要考慮的錯誤,我想談談實習琴弦。 在某些情況下,Python會嘗試重用不可變的對象,而字符串實習就是這種實際作用的一種情況。 所有長度為1的字符串都被屏蔽。 字符串中除ASCII字符,數字和下劃線外沒有其他任何內容。
在這里,我嘗試創建兩個不同的對象a和b,但這不是Python所做的。 Python實際上是b指向a的指針,而不是產生新的字符串。 但是,如果我們添加ASCII字符:
因此,在使用不可變字符串時請牢記這一點,因為它無疑給我帶來了很多麻煩。
上述內容就是Python中通常不應該犯的7個錯誤分別是哪些,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。