溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中通常不應(yīng)該犯的7個錯誤分別是哪些

發(fā)布時間:2021-10-28 16:09:57 來源:億速云 閱讀:121 作者:柒染 欄目:編程語言

本篇文章為大家展示了Python中通常不應(yīng)該犯的7個錯誤分別是哪些,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

 介紹

Python是一門相對容易掌握的語言,但是由于假設(shè)了很多事情,因此犯錯誤非常容易。 此外,這些錯誤可能會在很長一段時間內(nèi)被忽略。  在我其他前四個菜鳥Python錯誤之前。

避免這些新手Python錯誤

他們可能會工作,但可能會更好。

今天,我將分享更多在Python 3.8中容易犯的錯誤。

№1:+ =

在許多情況下,我當(dāng)然會犯的一個錯誤是獲取+ =操作數(shù)。 假設(shè)必須用兩個獨(dú)立的操作數(shù)來完成加法似乎太容易了,一個用于加法,另一個用于斷言。  幸運(yùn)的是,Python(以及許多其他編程語言)支持可以同時執(zhí)行數(shù)學(xué)運(yùn)算和斷言運(yùn)算的操作數(shù)。

代替:

x = x + 5

做:

x += 5

№2:位置自變量符號

在大多數(shù)現(xiàn)代腳本語言中,可以將兩種主要類型的參數(shù)用作函數(shù)的參數(shù):

位置和關(guān)鍵詞。

在python 3.8發(fā)行之前,還沒有辦法表示位置參數(shù),這使得位置參數(shù)默認(rèn)值基本上是不可能的。 但是,由于更改是在Python  3.8中對此進(jìn)行了更新,因此我們可以使用。 您應(yīng)該使用它們,因為位置參數(shù)是具有出色性能的優(yōu)質(zhì)Python代碼的基礎(chǔ)。  如果您的代碼需要用Python補(bǔ)償?shù)囊患拢绕涫窃跈C(jī)器學(xué)習(xí)時,那可能就是性能。

關(guān)鍵字參數(shù)在函數(shù)定義時評估一次。 這可能特別不利于遞歸算法的性能。 而且,如果您要編寫成本函數(shù),則絕對必須使用位置參數(shù)。  這并不是說根本不應(yīng)該使用它們,但是,只要有可能,最好使用位置參數(shù)。

代替:

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)

同樣重要的是要記住,此功能是相當(dāng)新的,因此僅使用位置參數(shù)以提高性能的概念將僅限于Python 3.8+

№3:初始化返回

盡管這當(dāng)然并不常見,并且可能是一個相當(dāng)大的菜鳥動作,但我已經(jīng)看到人們嘗試在其初始化函數(shù)中執(zhí)行返回。  在Python的面向?qū)ο蟮氖澜缰校看螌嵗悤r都會調(diào)用__init__函數(shù)。 初始化函數(shù)對于設(shè)置變量,移動數(shù)據(jù)和構(gòu)造類型而言非常有用。  功能強(qiáng)大,責(zé)任重大,Python的__init__函數(shù)應(yīng)用于類初始化,而不是監(jiān)視,不循環(huán),不直接執(zhí)行,僅用于類初始化。 并請(我有經(jīng)驗的人正在這樣做!)

不要返回init!

(這沒有任何意義!)

Python中通常不應(yīng)該犯的7個錯誤分別是哪些

№4:循環(huán)依賴

當(dāng)編寫一個大型Python程序包時,每個程序段都可以實現(xiàn)相似的目標(biāo),通常,您的程序包將彼此依賴。  這可能會帶來很大的問題,并可能導(dǎo)致一些被稱為"循環(huán)依賴項"的事情。 發(fā)生這種情況時,當(dāng)模塊周圍的不同位置嘗試相互訪問時,您可能會遇到問題。

№5:空格還是縮進(jìn)?

如您所知,Python使用縮進(jìn)而不是定界符將代碼包含在其他代碼中。 對于許多人來說,這使代碼更易于閱讀和編寫,盡管主觀上我個人鄙視它。  但是,在其他語言中,我通常傾向于使用縮進(jìn)(Tab鍵)來縮進(jìn)代碼。但是,根據(jù)PEP8,應(yīng)該為縮進(jìn)使用四個空格。  老實說,這是我只有在與很多人一起進(jìn)行項目時才遵循的原則。 對我而言,只要保持一致,我就不會將空格或縮進(jìn)視為重要的事情,但從正式意義上講,您應(yīng)該使用空格。  話雖如此,在編寫用于某項工作的實際代碼或需要許多其他用戶遵守的大型項目時,遵循PEP8的標(biāo)準(zhǔn)可能是一個好主意。

№6:塊迭代

當(dāng)執(zhí)行迭代的for循環(huán)時,編寫全長的for循環(huán)可以很容易地在代碼中表達(dá)您的想法。 但是,通常,如果您需要執(zhí)行的操作僅占用一行,則最好循環(huán)一行。  這不僅會使您的代碼更漂亮,更簡潔,而且還可以提高性能。

代替:

for i in x:  i += 5

做:

[i + 5 for i in x]

№7:實習(xí)弦

對于最后一個要考慮的錯誤,我想談?wù)剬嵙?xí)琴弦。 在某些情況下,Python會嘗試重用不可變的對象,而字符串實習(xí)就是這種實際作用的一種情況。  所有長度為1的字符串都被屏蔽。 字符串中除ASCII字符,數(shù)字和下劃線外沒有其他任何內(nèi)容。

Python中通常不應(yīng)該犯的7個錯誤分別是哪些

在這里,我嘗試創(chuàng)建兩個不同的對象a和b,但這不是Python所做的。 Python實際上是b指向a的指針,而不是產(chǎn)生新的字符串。  但是,如果我們添加ASCII字符:

Python中通常不應(yīng)該犯的7個錯誤分別是哪些

因此,在使用不可變字符串時請牢記這一點(diǎn),因為它無疑給我?guī)砹撕芏嗦闊?/p>

上述內(nèi)容就是Python中通常不應(yīng)該犯的7個錯誤分別是哪些,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI