1. 程式人生 > >python 漫談(一)相見恨晚的庫

python 漫談(一)相見恨晚的庫

在那 分享圖片 文本處理 執行時間 結果 性能 既然 panda Coding

(一)pypy和Cpython解釋器在性能上的比較

Cpython解釋器是從官網下載python自帶的解釋器,就是我們平常使用的解釋器。pypy解釋器的出現是為了在一定程度上提升python代碼運行的效率。據統計,pypy解釋器運行相同代碼的效率約為Cpython的6倍。

1. pypy的安裝測試

1 # 安裝
2 apt-get install pypy
3 # 測試
4 pypy

在命令行輸入pypy,進入類似python的界面

技術分享圖片

2. 性能對比

Talk is cheap, show my code. 用以下一段代碼一窺兩者執行效率上的差異。

1 import time
2 
3 start = time.time()
4 for i in range(10000*10000): 5 i +=1 6 end = time.time() 7 8 print(time used:%f%(end-start))

使用pypy解釋器運行十分簡單,只需在.py文件前加上pypy即可,以上代碼兩種解釋器的執行效果如下:

技術分享圖片

天差地別有木有!pypy執行時間之所以這麽短的原因在於用空間換取了時間,這裏不展開講了。

但是別高興的太早! pypy既然效率這麽高,為什麽沒流行起來呢?原因是pypy不像Cpython支持那麽多的庫,很多第三方庫例如pandas這樣的pypy是不支持滴。

所以,不想等得太久的小夥伴,要想用pypy,那就要做好用內建庫擼代碼的準備把!酷酷噠!

文本處理類的大批量計算推薦使用pypy!

(二)叠代/循環進度條

有些小夥伴不是不願意等的太久,而是想知道還要等多久。寫一個循環在那跑啊跑,不知道跑到哪了有木有很捉急。

下面上一款高逼格神器,一個第三方庫tqdm,專門為解決這個問題而生的。

1. 安裝

1 pip install tqdm

2. 使用

1 from tqdm import tqdm
2 import time
3 
4 for i in tqdm(range(1000)):
5         time.sleep(0.01)

看下炫炫的效果

技術分享圖片

(三)sys.argv

1 #encoding:utf-8
2 
3 import
sys 4 5 print "腳本名:", sys.argv[0] 6 for i in range(1, len(sys.argv)): 7 print "參數", i, sys.argv[i]

運行結果如下:

技術分享圖片

argv[i]用來讀取命令行輸入的參數!

python 漫談(一)相見恨晚的庫