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