13 個 Python 開發(fā)者都應(yīng)該知道的實(shí)用技巧
英文 | https://python.plainenglish.io/13-tips-and-tricks-that-every-python-programmer-should-know-cc2262280b5b
翻譯 | 楊小愛
(給七天小碼哥加星標(biāo),開發(fā)與培養(yǎng)你的第二職業(yè)能力)
大家好,我是小碼哥。
我們都知道 Python 是目前比較流行的編程語言之一,也是每個開發(fā)人員的最愛。在今天這篇文章中,我將分享13關(guān)于Python開發(fā)的實(shí)用技巧,這些技巧將幫助你進(jìn)行日常開發(fā),可以提升你的工作效率,節(jié)省你的開發(fā)時間,我個人覺得很用,希望它也能幫助到你。
我們現(xiàn)在開始吧。
1. 傳遞參數(shù)而不聲明
這個技巧將讓您在函數(shù)中傳遞無限參數(shù),而無需在函數(shù)體中聲明它們。
# Pass Argumentsdef Test_func(*numbers):mul = 1for n in numbers:mul = mul * nprint(mul)Test_func(1, 3, 4) # 12
2. 迭代列表
您可能使用循環(huán)來迭代列表,但您知道 python 有什么驚人的迭代列表并在其上執(zhí)行函數(shù)嗎?看下面示例代碼。
mylst = [11, 22, 33, 44, 55]new = [x * 2 for x in mylst]print(new)
3. 更短的庫名稱
有時很難在一個程序的多行代碼中使用長名稱庫,本技巧將向您展示如何以簡單的 Python 方式縮短您的庫名稱。
# Shorter Library Namesimport pandas as pdimport numpy as npimport tkinter as tkimport time as t
4. Pyforest
如果你不需要安裝 Pandas、NumPy、SciPy、nltk 等流行模塊和其他 python 流行庫,我推薦你使用這個庫。在使用 Pyforest 時,您不需要導(dǎo)入這些模塊,但您可以簡單地調(diào)用它們的函數(shù)。
import pyforesta = np.array([[1, 2], [3, 5]])
如果您看過上面的示例代碼,您就會知道我沒有導(dǎo)入 NumPy 模塊并直接使用它們的功能,所以說,這就是使用 Pyforest 的好處。
5. 多輸入
這個簡單的技巧將幫助您使用一行代碼獲取多個輸入。
# Take Multiple Inputdata = input("Enter num with Spaces: ").split()print(data)# Input1 2 3# Output['1', '2', '3']
6.修剪原始數(shù)據(jù)
這個很棒的技巧將幫助您以干凈的格式修剪原始數(shù)據(jù)或 Web 數(shù)據(jù),有時我們會遇到一些粗大的原始數(shù)據(jù),其中包括一些額外的空格、特殊字符等,要清理它,您可以查看以下示例代碼。
# Trim Datadata = " Hello"print(data.strip(" ")) # Hellodata = " Hello Pythoneer"print(data.lstrip(" ")) # Hello Pythoneerdata = "Hello Coder$$$"print(data.rstrip("$")) # Hello Coder
7. 運(yùn)行時處理錯誤
運(yùn)行時錯誤總是讓人頭疼,為了避免這種頭痛,您可以在 Python 中使用運(yùn)行時錯誤處理語句。
# Handling Runtime Errorx = 6try:if 5 > 3:x = x * yelse:x = x + yexcept:is not defined")# OutputError CaughtY is not defined
8. lambda 函數(shù)
本技巧將指導(dǎo)您使用 lambda 函數(shù)在一行中編寫小函數(shù),查看下面的示例代碼以了解 lambda 的工作原理。
# One liner functions#example 1mul = lambda x : x * 2print(mul(3)) # 6#example 2mul = lambda x,y : x * y * 2print(mul(1,2)) # 4
9. Yield的魔力
Yield 是 Python 中的一個關(guān)鍵字,用于在不破壞其當(dāng)前狀態(tài)和局部變量的情況下從函數(shù)返回,并且當(dāng)再次調(diào)用該函數(shù)時,yield 將從最后一個 yield 語句執(zhí)行該函數(shù)。
# Yielddef func():yield 1yield 2yield 3yield 4for x in func():print(x)#Output:1234
通過上面的示例代碼,你會知道,當(dāng)?shù)谝粋€ yield 返回并且在整個循環(huán)中再次調(diào)用函數(shù)時,它從最后一個 yield 開始,這次是第二個 yield 語句調(diào)用。
10. 局部變量和全局變量
這個技巧將指導(dǎo)您如何在函數(shù)中聲明全局變量和局部變量,通過查看下面的示例代碼,您可以了解它們的區(qū)別。
# Local and Global Variables# Local variblesa = 5b = 6# Globaldef func():global aa = 6 * 2global aa = 0
11. 智能字典
很多 Python程序員使用括號方法來訪問字典中鍵值的數(shù)據(jù),但是,當(dāng)您遇到關(guān)鍵錯誤時,程序?qū)⑼V?,為了避免這個運(yùn)行時發(fā)生錯誤,您可以獲取一種方法來訪問字典中的鍵值。
# Dictionary in Smart waymydict = {"a" : 10, "b" : 20, "c" : 30}# Best waymydict.get(mydict["d"]) # None# default waymydict["d"] # KeyError
12. 智能數(shù)據(jù)交換
這個簡單的技巧將向您展示,在不使用臨時變量的情況下交換兩個值的友好方法。
d1 = 55d2 = 66d2, d1 = d1, d2print(d1, d2)#output66 55
13. Division 2.0
當(dāng)您需要對兩個數(shù)字進(jìn)行除法并以商和余數(shù)的形式獲得結(jié)果時,此提示和技巧很有用,查看下面的代碼示例以獲得更好的理解。
# Divisionx = 5y = 3div = divmod(x, y)print(div) # (1, 2) --> (Quotient, Remainder)
寫在最后的想法
以上就是我今天想跟你分享的13 個關(guān)于Python的技巧,它們將幫助您提升工作效率。
如果你覺得今天的內(nèi)容有用的話,請記得點(diǎn)贊我,關(guān)注我,并將這篇文章內(nèi)容分享熱愛編程的朋友,也許能夠幫助到他。
最后,感謝您的閱讀,Python編程愉快!
推薦小碼哥新書!
小碼哥新手《Python + Excel/Word/PPT一本通》正式上市了!書中詳細(xì)介紹了零基礎(chǔ)用Python實(shí)現(xiàn)辦公自動化的各方面知識,提高職場辦公效率,附贈PPT/源代碼/重點(diǎn)教學(xué)視頻講解和作者VIP一對一指導(dǎo)。
內(nèi)容介紹:《Python + Excel/Word/PPT 一本通》內(nèi)容介紹
掃碼購買
▼點(diǎn)擊閱讀原文,了解本書詳情~

