摘要:的一大特色是其豐富的模塊,基本上只要你能想到的常見(jiàn)開(kāi)發(fā)需求,都能找到別人已經(jīng)實(shí)現(xiàn)的庫(kù)直接使用,或者相關(guān)的工具框架來(lái)輔助實(shí)現(xiàn)。我們編程教室在過(guò)去發(fā)表過(guò)數(shù)十個(gè)開(kāi)發(fā)案例,這些案例主要用到哪些庫(kù)呢今天就來(lái)統(tǒng)計(jì)一下,順便給大家整理及推薦常用的一些庫(kù)。
Python 的一大特色是其豐富的模塊,基本上只要你能想到的常見(jiàn)開(kāi)發(fā)需求,都能找到別人已經(jīng)實(shí)現(xiàn)的庫(kù)直接使用,或者相關(guān)的工具/框架來(lái)輔助實(shí)現(xiàn)。但這對(duì)于新手來(lái)說(shuō)也是一個(gè)問(wèn)題: 這么多庫(kù),我要從哪里學(xué)起?怎么才能記住這么多庫(kù)的用法?
對(duì)此我的建議:
不要把學(xué)習(xí)庫(kù)作為目標(biāo)。正確的學(xué)習(xí)邏輯是,去發(fā)掘可編程解決的需求,以實(shí)現(xiàn)功能為目標(biāo), 在開(kāi)發(fā)過(guò)程中去搜索去學(xué)習(xí)相關(guān)的庫(kù) 。否則你會(huì)陷在茫茫模塊之中失去方向。
不用去死記庫(kù)的用法,你也不可能記下來(lái)。 你需要了解的是查找和閱讀文檔的方法,以及常見(jiàn)的開(kāi)發(fā)模式 。所謂開(kāi)發(fā)經(jīng)驗(yàn),并不是你記住的內(nèi)容,而是你掌握的方法。
我們編程教室在過(guò)去發(fā)表過(guò)數(shù)十個(gè)開(kāi)發(fā)案例,這些案例主要用到哪些庫(kù)呢?今天就來(lái)統(tǒng)計(jì)一下,順便給大家整理及推薦常用的一些庫(kù)。
之前有下載過(guò)文章相關(guān)代碼的同學(xué)應(yīng)該知道我們這個(gè) snippet 的代碼倉(cāng)庫(kù),我們大部分的案例項(xiàng)目都在其中。下面就以這個(gè)庫(kù)中的代碼為參考進(jìn)行統(tǒng)計(jì)。
統(tǒng)計(jì)代碼:
import os from collections import Counter modules = set() all_modules = {} for root, dirs, files in os.walk("..", topdown=False): for name in files: if name.endswith(".py"): with open(root + os.path.sep + name) as f: for line in f: line = line.lstrip() if line.startswith("from") or line.startswith("import"): module = line.split()[1] module = module.split(".")[0] if module: modules.add(module) if root.count(os.path.sep) <= 1: for m in modules: all_modules[m] = all_modules.get(m, 0) + 1 modules = set() print(Counter(all_modules).most_common())
代碼很簡(jiǎn)單,4個(gè)步驟:
遍歷文件夾,找出所有 .py 結(jié)尾的代碼文件
對(duì)代碼文件中的每一行,判斷是否以 from 或 import 開(kāi)頭,是的話,就把它后面的模塊名記下來(lái)
為了避免有的項(xiàng)目中重復(fù)導(dǎo)入一個(gè)模塊影響數(shù)據(jù),對(duì)于同一個(gè)項(xiàng)目子目錄下,我們用 set 記錄保證不重復(fù),然后再添加到總的記錄字典中
使用 Counter 對(duì)字典進(jìn)行排序,找到使用次數(shù)最多的模塊
最后的結(jié)果以及模塊說(shuō)明(名稱后是使用次數(shù)):
random - 10,隨機(jī)數(shù)
requests - 8,網(wǎng)絡(luò)請(qǐng)求
numpy - 8,高性能計(jì)算
matplotlib - 7,圖表繪制
time - 7,時(shí)間
cv2 - 6,計(jì)算機(jī)視覺(jué)
math - 6,數(shù)學(xué)
os - 6,系統(tǒng)
collections - 5,集合
pyecharts - 4,圖表繪制
urllib - 4,網(wǎng)絡(luò)請(qǐng)求
datetime - 4,日期與時(shí)間
bs4 - 4,HTML文本解析
tkinter - 3,圖形界面GUI
sys - 3,系統(tǒng)
jieba - 3,中文分詞
pandas - 2,數(shù)據(jù)統(tǒng)計(jì)分析
scipy - 2,科學(xué)計(jì)算
re - 2,正則表達(dá)式
argparse - 2,命令行參數(shù)
pygame - 2,游戲
json - 2,JSON格式處理
email - 2,郵件
smtplib - 2,郵件
urllib2 - 2,網(wǎng)絡(luò)請(qǐng)求
pyaudio - 2,聲音
PIL - 2,圖像處理
除了 random、time、math 這類 python 自帶的基礎(chǔ)庫(kù)外,從以上統(tǒng)計(jì)可以間接看出,我們的案例比較多的會(huì)涉及 網(wǎng)絡(luò)數(shù)據(jù)的抓取 (requests、urllib、bs4)、 數(shù)據(jù)分析及可視化 (numpy、matplotlib、pyecharts、pandas)、 計(jì)算機(jī)視覺(jué)及圖像處理 (cv2、PIL)等方向。
對(duì)于已經(jīng)學(xué)完 python 基本語(yǔ)法,想要進(jìn)一步深入學(xué)習(xí)的同學(xué),可根據(jù)方向重點(diǎn)關(guān)注以下庫(kù):
Web 開(kāi)發(fā):django / flask
網(wǎng)絡(luò)爬蟲(chóng):requests、bs4
數(shù)據(jù)分析:numpy、pandas、matplotlib
視覺(jué)及圖像處理:cv2、PIL(pillow)
圖形界面開(kāi)發(fā):tkinter / PyQT
游戲開(kāi)發(fā):pygame / cocos-python
不用貪多,找個(gè)自己感興趣的方向,選一些可行的案例進(jìn)行開(kāi)發(fā),把基本的幾個(gè)庫(kù)用熟了,這個(gè)過(guò)程你得到成長(zhǎng)就會(huì)很多。 寫(xiě)代碼的目的是解決問(wèn)題,調(diào)用庫(kù)只是實(shí)現(xiàn)的手段,千萬(wàn)不要本末倒置了。
統(tǒng)計(jì)的代碼也上傳了倉(cāng)庫(kù),需要的話可在 公眾號(hào)(Crossin的編程教室) 回復(fù)關(guān)鍵字 模塊
════
其他文章及回答:
如何自學(xué)Python | 新手引導(dǎo) | 一圖學(xué)Python | 智能防擋彈幕 | 紅包提醒 | 流浪地球
歡迎搜索及關(guān)注: Crossin的編程教室
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43226.html
摘要:一是什么目前的大部分公司的項(xiàng)目都是采用的前后端分離后端接口的開(kāi)發(fā)和前端人員是同時(shí)進(jìn)行的那么這個(gè)時(shí)候就會(huì)存在一個(gè)問(wèn)題在頁(yè)面需要使用大量數(shù)據(jù)進(jìn)行渲染生成前后端開(kāi)發(fā)人員的接口也許并沒(méi)有寫(xiě)完作為前端的我們也就沒(méi)有辦法獲取數(shù)據(jù)所以前端工程師就需要自己 showImg(https://segmentfault.com/img/remote/1460000013022563); 一.Mock.js是...
摘要:以下測(cè)試代碼全部基于查找最大或最小的個(gè)元素工作中有時(shí)會(huì)遇到這樣的需求,取出數(shù)據(jù)中前面的值,或者最后的值。大家如果對(duì)堆數(shù)據(jù)結(jié)構(gòu)感興趣的話,可以繼續(xù)進(jìn)行深入研究,由于我了解的并不深,也沒(méi)辦法再展開(kāi)了。 文章首發(fā)于知乎專欄,歡迎關(guān)注。https://zhuanlan.zhihu.com/py... 以下測(cè)試代碼全部基于 Python3 1、查找最大或最小的 N 個(gè)元素 工作中有時(shí)會(huì)遇到這樣的...
摘要:基本用法最近工作上用到爬蟲(chóng)框架號(hào)稱是上最好用的爬蟲(chóng)框架。這里記下自己用到過(guò)的使用技巧,免得下次使用的時(shí)候再摸索。 Goutte基本用法 最近工作上用到PHP爬蟲(chóng)框架Goutte(號(hào)稱是PHP上最好用的爬蟲(chóng)框架)。這里記下自己用到過(guò)的使用技巧,免得下次使用的時(shí)候再摸索。 table相關(guān) html: 國(guó)內(nèi)高匿代理IP 更多 國(guó)家 代...
摘要:基本用法最近工作上用到爬蟲(chóng)框架號(hào)稱是上最好用的爬蟲(chóng)框架。這里記下自己用到過(guò)的使用技巧,免得下次使用的時(shí)候再摸索。 Goutte基本用法 最近工作上用到PHP爬蟲(chóng)框架Goutte(號(hào)稱是PHP上最好用的爬蟲(chóng)框架)。這里記下自己用到過(guò)的使用技巧,免得下次使用的時(shí)候再摸索。 table相關(guān) html: 國(guó)內(nèi)高匿代理IP 更多 國(guó)家 代...
摘要:但今年各種搶票軟件的橫行,還有官方出的加速包,導(dǎo)致連黃牛都不敢保證能買(mǎi)到票。今天我就給大家介紹一個(gè)開(kāi)源的搶票程序,親測(cè)有效我身邊已經(jīng)有很多好友,通過(guò)這個(gè)程序搶到車票了。這個(gè)庫(kù)是用來(lái)在上同步校準(zhǔn)當(dāng)?shù)貢r(shí)間的。 showImg(https://segmentfault.com/img/remote/1460000017814865); 閱讀文本大概需要 6.6 分鐘。 又到了一年一度的搶票大...
閱讀 1789·2021-11-25 09:43
閱讀 15430·2021-09-22 15:11
閱讀 2637·2019-08-30 13:19
閱讀 2019·2019-08-30 12:54
閱讀 1822·2019-08-29 13:06
閱讀 933·2019-08-26 14:07
閱讀 1622·2019-08-26 10:47
閱讀 3043·2019-08-26 10:41