您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python的竅門和技巧有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python的竅門和技巧有哪些”吧!
Python官方宣布:從2020年1月1日起,正式不支持Python 2。本文有一堆的例子,只能在Python 3工作。如果你的版本還是Python 2.7版,趕緊升級到Python 3.x吧。
大家可以在代碼中檢查Python版本,以確保沒有使用不兼容的版本運行腳本。使用以下簡單檢查:
import sys# 檢查python版本,如果是低于3.5就退出程序def check_version():v = sys.version_info# print(v) # sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0)if v.major == 3 and v.minor >= 5:returnprint('Your current python is %d.%d. Please use Python 3.6.' % (v.major, v.minor)) exit(1)
IPython是一個增強的shell工具。可以進行代碼自動補全,其實還有很多命令,我也喜歡內置的所有magic命令。比如:
%cd —更改當前工作目錄
%edit —打開編輯器并在關閉編輯器后執行鍵入的代碼
%env —顯示當前環境變量
%pip install [pkgs] —在不離開交互式shell的情況下安裝軟件包
%time和%timeit—定時執行Python代碼
另一個有用的功能是引用先前命令的輸出。輸入和輸出是實際對象。你可以通過使用Out[3]來使用第三個命令的輸出。
使用以下命令安裝IPython:
pip3 install ipython
列表(list)理解可以代替丑陋的for循環來填充列表。列表理解的基本語法為:[ expression for item in list if conditional ]
一個非常簡單的示例,用數字序列填充列表:
[i for i in range(10)]
并且因為可以使用表達式,所以還可以進行一些數學運算,甚至調用外部函數。
最后,你可以使用if篩選列表。在這種情況下,我們僅保留可被2整除的值:
[i for i in range(10) if i%2==0]
使用sys.getsizeof(),你可以檢查對象的內存使用情況。
Python中的函數可以返回多個變量,而無需字典,列表或類。
對于有限數量的返回值,這是可以的。但是超過3個值的任何內容都應放入類中。
從Python 3.7版開始,Python提供data類。與常規類或其他替代方法(如返回多個值或字典)相比,它具有多個優點:
數據類需要最少的代碼
你可以比較data類,因為它__eq__已為您實現
你也可以輕松打印數據類以進行調試,因為它__repr__也已實現
data類需要類型提示,從而減少了發生錯誤的機會
一項巧妙的小技巧,可以節省幾行代碼。
a,b = b,a
從Python 3.5開始,合并字典變得更加容易:
如果鍵(key)重疊,則第一個詞典中的鍵(key)將被覆蓋。
使用capitalize()函數將字符串的首字母轉為大寫,其余變為小寫。
"welcome".capitalize()
你可以將字符串拆分為字符串列表。在這種情況下,我們分割空格字符:
list("welcome")
反之亦然,從上一個技巧開始,從列表中創建一個字符串,并在每個單詞之間添加一個空格字符:
">
這將使人印象深刻或被排斥,這取決于誰在尋找。更嚴重的是,這可以派上用場,尤其是在分析社交媒體數據時。
首先,安裝表情符號模塊:
pip3 install emoji
安裝此程序后,您可以執行以下操作:
列表切片的基本語法是:a[start:stop:step]
start,stop和step是可選的。如果不填寫,則默認為:
0為 start
字符串的結尾 end
step默認為1
這里有些例子:
a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]a[2:5:2]
你可以從上方使用切片符號來反轉字符串或列表。通過使用step=-1,將元素反轉:
a[::-1]
我終于找到了一個很好的借口,可以在其中一篇文章中展示小貓了!但是,可能會使用它來顯示圖形等。首先,安裝Pillow(https://pypi.org/project/Pillow/),它是Python圖像庫的一個分支:
pip3 install Pillow
現在,將該圖像下載到一個名為“ kitchess.jpg”的文件中:
你可以直接從IPython進行操作:
Pillow不僅可以顯示圖像,還可以做更多的事情。它可以分析,調整大小,過濾,增強,變形等。有關所有功能,請參閱文檔
Python的內置函數之一稱為map()。map()的語法為:
map(function, something_iterable)
因此,你給它提供了要執行的功能以及要執行的某些功能。這可以是任何可迭代的事情。在下面的示例中,我將使用一個列表a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]。
list(map(lambda x: x+1,a))
看一下自己的代碼,看看是否可以map()在某處使用而不是循環!
通過使用set()函數創建一個集合,你可以從列表或類似列表的對象中a=[1,1,2,3,4,4]獲取所有唯一元素。
set(a)
要在列表或字符串中查找最頻繁出現的值:
test=[1,1,2,3,4,4,4,4]
您知道這為何有效嗎?在繼續閱讀之前,請先自己弄清楚。您沒有嘗試,對嗎?無論如何,我會告訴你:
max()將返回列表中的最大值。該key參數采用單個參數函數來自定義排序順序,在本例中為test.count。該函數應用于迭代器上的每個項目。
test.count是list的內置函數。它接受一個參數,并將計算該參數的出現次數。因此test.count(1)將返回2,test.count(4)返回4。
set(test) 返回測試的所有唯一值,因此{1、2、3、4} 因此,我們在單行代碼中所做的就是獲取test的所有唯一值,即{1, 2, 3, 4}。接下來,max將list.count函數應用到它們并返回最大值。
你可以創建自己的進度條,這很有趣。但是使用進度包更快:
pip3 install progress
現在,你可以輕松創建進度條。
你可以使用下劃線運算符獲取最后一個表達式的結果,例如在IPython中,它看起來像:
In [1]: 3 * 3Out[1]: 9In [2]: _ + 3Out[2]: 12
這也可以在Python Shell中使用。此外,IPython shell允許使用Out[n]來獲得表達式在In [n]中的值例如,Out[1]在上面的示例中,_可以得到數字9。
你可以快速啟動Web服務器,以提供當前目錄的內容:
python3 -m http.server
如果你想與同事共享一些東西或想要測試一個簡單的HTML網站,這將很有用。
盡管可以在代碼中使用三引號將多行字符串包括在內,但這并不理想。放在三引號之間的所有內容都將成為字符串,包括格式,如下所示。我更喜歡第二種方法,該方法將多行連接在一起,可以很好地格式化代碼。唯一的缺點是你需要顯式添加換行符。
這是使代碼更簡潔同時又保持可讀性的另一種方法:
[on_true] if [expression] else [on_false]
舉個例子:
x = "Success!" if (y == 2) else "Failed!"
您可以使用集合庫中的Counter來獲取包含列表中所有唯一元素計數的字典:
from collections import Countera=[1, 1, 2, 3, 4, 4]Counter(a)
您可以在Python中鏈接比較運算符,以創建更易讀和簡潔的代碼:
python-dateutil模塊(https://pypi.org/project/python-dateutil/)提供了對標準datetime模塊的強大擴展。通過以下方式安裝:
pip3 install python-dateutil
你可以用這個庫做很多很酷的事情。我將把示例限制在我認為特別有用的一個:日志文件中日期的模糊解析等。
只需記住:常規的Python日期時間功能在哪里結束,python-dateutil就出現了!
在Python 2中,除法運算符(/)默認為整數除法,除非操作數之一是浮點數。因此,你有以下行為:
#Python 2 5/2 = 2 5 / 2.0 = 2.5
在Python 3中,除法運算符默認為浮點除法,并且//運算符已成為整數除法。這樣我們得到:
#Python 3 5/2 = 2.5 5 // 2 = 2
您可以使用chardet模塊來檢測文件的字符集。在分析大量隨機文本時,這很有用。安裝方式:
pip install chardet
現在你有了一個名為chardetect的額外命令行工具,它可以像這樣使用
chardetect somefile.txtsomefile.txt: ascii with confidence 1.0
感謝各位的閱讀,以上就是“Python的竅門和技巧有哪些”的內容了,經過本文的學習后,相信大家對Python的竅門和技巧有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。