毫無疑問,python是一種簡單、流行和易于理解的語言。python有很多不同于其他的語言。
為了用python編寫更好的代碼,我們?nèi)匀豢梢愿倪M(jìn)一些事情。在這篇博客中,你會學(xué)到10個技巧,讓你的python代碼變得更好。
讓我們設(shè)想這樣一個場景:您為一家招聘機(jī)構(gòu)工作,該公司的人力資源部門給了您一項任務(wù),要構(gòu)建一個系統(tǒng),該系統(tǒng)可以用來選擇所有符合條件的候選人?,F(xiàn)在你的工作是為公司找回所有的候選人。
那么,你做這件事的第一個想法是什么?您可以創(chuàng)建一個帶有多個條件的程序。
上面的代碼沒有任何問題,但是我們可以使用鏈接操作符以更好的方式來完成它。我們可以將所有條件連接在一個if語句中。
如果我讓你讀下面寫的數(shù)字,你會讀得更快,理解得更快嗎?
很明顯,答案是第二個,因為這個數(shù)被分解成了三分之一。連小孩子都知道第四部分是十億,所以數(shù)字將是三億四千五百六十六萬九十八萬六千七百八十四。識別數(shù)字要快得多。
在python中,你可以將下劃線放在數(shù)字的任何位置,它們將被視為有效,這意味著你可以在任何你想要的地方使用這個數(shù)字。
條件語句用于根據(jù)某些條件執(zhí)行任務(wù)。如果條件后面的語句只有一行,那么我們可以使用內(nèi)聯(lián)條件使其更簡單和易于閱讀。
x = 5if x==5: print('x equals 5')for i in range(x 5): print(i)
我們還可以使用內(nèi)聯(lián)語句來設(shè)置變量值。
condition = Trueif condition: x=1else: x=0
上面的代碼可以進(jìn)一步簡化,并使用語法var = value if 條件els other_value在一行代碼中編寫
condition = Truex = 1 if condtion else 0
此外,您可以將內(nèi)聯(lián)語句合并到返回語句中,并在lambda函數(shù)中使用它們。
check = lambda x:True if x%5==0 else Falsecheck(10) ## Truecheck(12) ## False
列表理解通常是一種更優(yōu)雅、更有用的列表制作方法。它們將幫助我們編寫更好的代碼。當(dāng)你可以用一行代碼創(chuàng)建一個列表時,為什么要用3-4行代碼呢?
您可以簡單地使用列表推導(dǎo)式創(chuàng)建一個空列表,并同時向列表中添加元素,而不是創(chuàng)建一個空列表,然后在列表末尾添加每個元素。
new_list = [expression for item in iterable (if conditional)]
例如:
python3附帶了F字符串。它們非常有用,而且很容易使用。它們使我們的代碼更具可讀性和可理解性。字符串提供了一種簡潔方便的方式,將python表達(dá)式嵌入字符串文本中進(jìn)行格式化。
讓我們定義兩個要包含在print語句中的變量name和age。
name = 'Abhay'age = 20
現(xiàn)在我們有四個選項來在打印輸出語句中格式化它。首先,讓我們看看我們不應(yīng)該使用的三個。
print('Hey This is ',name,'and I am ',age) ## value assignment
print('Hey This is ' name 'and I am ' str(age)) ## concatenation
print('Hey This is {} and I am {}'.format(name,age))
現(xiàn)在,讓我們看看用f字串最好的方法。
如果有一天要為python的最佳特性創(chuàng)建一個列表,那么enumerate將是名列前茅的強(qiáng)大特性。
它非常類似于在可迭代對象中運(yùn)行循環(huán),但不同的是,它也給了你獲取索引和索引值的優(yōu)勢。它在數(shù)據(jù)清理、值的替換和排序等情況下非常有用。
for index,value in enumerate(iterable): print(index,value)
讓我們通過一個例子來更好地理解它,我們需要把列表中所有的偶數(shù)替換為偶數(shù),把所有的奇數(shù)替換為奇數(shù)。
這是許多開發(fā)人員不知道如何正確使用的python特性。Python允許大量和簡單的方法來解包變量。
讓我們考慮一個真實的用例。您有一個列表名稱數(shù)據(jù),其中包含不同人的信息,如他們的姓名、年齡和電子郵件。現(xiàn)在你的任務(wù)是將所有的名字、年齡和電子郵件分離到單獨(dú)的列表中。
您可能正在考慮使用一些空列表,然后將數(shù)據(jù)相應(yīng)地附加到列表中,或者直接賦值,但是還有一個更簡單的方法,使用參數(shù)解包只需一行代碼。
你們中很多人可能不知道這個。我也遇到了這個,當(dāng)我創(chuàng)建一個價格比較應(yīng)用程序,我必須從一個函數(shù)返回多個數(shù)據(jù)作為產(chǎn)品的名稱,價格和鏈接。在python中,我們可以返回任意多的值。它也被稱為元組解包。
python最偉大的特性之一是它的單行程序和各種包。使用one - line可以只用一行代碼執(zhí)行任務(wù),而不是編寫5或10行代碼。一行程序?qū)槟?jié)省大量時間。另一方面,我們有包裹。你們中有些人可能會說,你應(yīng)該自己寫代碼,但根據(jù)我的,如果你能在一行代碼中完成一些任務(wù),或者僅僅一個導(dǎo)入,那么寫數(shù)千行代碼的需要是什么。你可能不同意我的想法,但這和阿爾伯特·愛因斯坦說的是一樣的。
注釋對于編寫更好的代碼非常有用。它們可以幫助您和您的團(tuán)隊更好地理解代碼。注釋顯示代碼流。評論是開發(fā)者的定期存款。要成為一名更好的開發(fā)人員并編寫更好的代碼,您應(yīng)該養(yǎng)成編寫注釋的習(xí)慣,說明您正在做的任何事情以及您的代碼將要做什么。
原文鏈接:
https://levelup.gitconnected.com/10-python-tips-for-better-code-1bbffde3b44d