我們常常分享編程其實很簡單的文章,給大家樹立信心。
如果只是編寫簡單的程序,如果你只是想馬上完成,一天的時間即可完成。
但如果你想很快地編寫複雜,卻沒有重構和註釋幾乎不可讀的代碼。對不起,面對現實吧,編碼很難。
通常這種情況下,別人不得不幫你收拾爛攤子。
因此,爲了增加可讀性和可重用性,負責任的重組和記錄代碼非常重要。
這裏小芯就給大家推薦3種編寫Python的好方法,它們能幫你成爲更好的程序員。
1. Docstring
Docstring 是Python文檔字符串的英文縮寫。Docstring是三重雙引號 ”“”中,在所定義模塊,函數,類或方法的第一個陳述。這是函數中docstring的最小示例。
deffoo(): """This function doesnothing.""" passprint(foo.__doc__) # Thisfunction does nothing.
函數的文檔字符串應包含(一行)對目的的簡短介紹,後面的段落描述了函數調用約定。樣式多種多樣,但這是我最喜歡的模板之一:
defsum_of_squares(nums): """ Compute the sum of squares of a list of numbers. Args: nums (`list` of `int` or `float`): A `list` of numbers. Returns: ans (`int` or `float`): Sum of squares of `nums`. Raises: AssertionError: If `nums` contain elements that are not floats nor ints. """ try: ans =sum([x**2for x in nums]) except: raiseAssertionError('Input should be a list of floats or ints.') return ans
由GitHub發起的rawdocstring.py
2. f-string(格式化字符串)
你可能習慣於使用以下命令格式化字符串,即%或者format().
name ='World' 'Hello %s' % name # Hello World 'Hello {}'.format(name) # Hello World
拋棄它們。 一旦你需要在更長的字符串中打印多個變量,該代碼將很快變得混亂且難以理解。無論如何,這些格式化方法並不簡單。
Pythonf-string是Python 3.6的引入的改變遊戲規則的工具。這是一種可讀且高級的字符串格式句法,將表達式嵌入字符串。這是通過語句f'{expr}'完成的; 其中表達式用f字符串內的大括號括起來。表達式在開頭帶有f,位於單引號之前。
示例:
name ='World' print(f'Hello{name}') # Hello World
可以在大括號內寫任何在語法上有效的表達。還可以在表達式中調用函數!
a =[1,2.2,3] print(f'Sum of squares of {a} is {sum_of_squares(a)}') # Sum of squares of [1, 2.2, 3] is 14.84
3.命名慣例
命名事物是計算機科學中最困難的事情之一。你窮盡了所有想法。,卻不知道如何命名臨時中介變量。但你並不是唯一不會命名的人。
儘管很困難,Python中還是有一些命名慣例,來“縮小”命名變量時的選擇範圍的。它們有助於增強代碼的一致性,可讀性和可重用性。
因此,如果字母本身沒有含義的話,你不應該再使用單個小寫字母命名所有變量,例如a, x等等。另外,您應該使用有意義的,易於理解且容易被識別的單詞命名它們,例如用user_profile 替換掉 uspr.
以下是有關事物命名的6條提示:
1. 避免使用單個字母命名事物,例如O, I, l。原因很明顯。
2. 變量和函數名稱都應該小寫。
3. 變量或函數名稱中的單詞應用下劃線 _ 分開。
4. 私有變量(例如在類內部)可能從一個下劃線開始
5. 類別名稱中的單詞應串聯並大寫,例如MarioKart。
6. 常數名稱應大寫,如 GOLDEN_RATIO。
此列表不是絕對詳盡的。命名變量可以說是編程中最難學習的內容之一。因此,在GitHub上閱讀其他人的代碼並學習他們的命名方法,是初學者的最佳途徑。