Python 語言官方的參考手冊鐘,介紹了與 Python 一同發行的標準庫。

成都創新互聯是創新、創意、研發型一體的綜合型網站建設公司,自成立以來公司不斷探索創新,始終堅持為客戶提供滿意周到的服務,在本地打下了良好的口碑,在過去的十多年時間我們累計服務了上千家以及全國政企客戶,如成都石牌坊等企業單位,完善的項目管理流程,嚴格把控項目進度與質量監控加上過硬的技術實力獲得客戶的一致贊賞。
文本處理服務
string?--- 常見的字符串操作
re?--- 正則表達式操作
difflib?--- 計算差異的輔助工具
textwrap?--- 文本自動換行與填充
unicodedata?--- Unicode 數據庫
stringprep?--- 因特網字符串預備
readline?--- GNU readline 接口
rlcompleter?--- GNU readline 的補全函數
二進制數據服務
struct?--- 將字節串解讀為打包的二進制數據
codecs?--- 編解碼器注冊和相關基類
數據類型
datetime?--- 基本日期和時間類型
zoneinfo?--- IANA 時區支持
calendar?--- 日歷相關函數
collections?--- 容器數據類型
collections.abc?--- 容器的抽象基類
heapq?--- 堆隊列算法
bisect?--- 數組二分查找算法
array?--- 高效的數值數組
weakref?--- 弱引用
types?--- 動態類型創建和內置類型名稱
copy?--- 淺層 (shallow) 和深層 (deep) 復制操作
pprint?--- 數據美化輸出
reprlib?--- 另一種?repr()?實現
enum?--- 對枚舉的支持
graphlib?--- 操作類似圖的結構的功能
數字和數學模塊
numbers?--- 數字的抽象基類
math?--- 數學函數
cmath?--- 關于復數的數學函數
decimal?--- 十進制定點和浮點運算
fractions?--- 分數
random?--- 生成偽隨機數
statistics?--- 數學統計函數
函數式編程模塊
itertools?--- 為高效循環而創建迭代器的函數
functools?--- 高階函數和可調用對象上的操作
operator?--- 標準運算符替代函數
文件和目錄訪問
pathlib?--- 面向對象的文件系統路徑
os.path?--- 常用路徑操作
fileinput?--- 迭代來自多個輸入流的行
stat?--- 解析?stat()?結果
filecmp?--- 文件及目錄的比較
tempfile?--- 生成臨時文件和目錄
glob?--- Unix 風格路徑名模式擴展
fnmatch?--- Unix 文件名模式匹配
linecache?--- 隨機讀寫文本行
shutil?--- 高階文件操作
數據持久化
pickle?--- Python 對象序列化
copyreg?--- 注冊配合?pickle?模塊使用的函數
shelve?--- Python 對象持久化
marshal?--- 內部 Python 對象序列化
dbm?--- Unix "數據庫" 接口
sqlite3?--- SQLite 數據庫 DB-API 2.0 接口模塊
數據壓縮和存檔
zlib?--- 與?gzip?兼容的壓縮
gzip?--- 對?gzip?格式的支持
bz2?--- 對?bzip2?壓縮算法的支持
lzma?--- 用 LZMA 算法壓縮
zipfile?--- 使用ZIP存檔
tarfile?--- 讀寫tar歸檔文件
文件格式
csv?--- CSV 文件讀寫
configparser?--- 配置文件解析器
tomllib?--- Parse TOML files
netrc?--- netrc 文件處理
plistlib?--- 生成與解析 Apple?.plist?文件
加密服務
hashlib?--- 安全哈希與消息摘要
hmac?--- 基于密鑰的消息驗證
secrets?--- 生成管理密碼的安全隨機數
通用操作系統服務
os?--- 多種操作系統接口
io?--- 處理流的核心工具
time?--- 時間的訪問和轉換
argparse?--- 命令行選項、參數和子命令解析器
getopt?--- C 風格的命令行選項解析器
logging?--- Python 的日志記錄工具
logging.config?--- 日志記錄配置
logging.handlers?--- 日志處理程序
getpass?--- 便攜式密碼輸入工具
curses?--- 終端字符單元顯示的處理
curses.textpad?--- 用于 curses 程序的文本輸入控件
curses.ascii?--- 用于 ASCII 字符的工具
curses.panel?--- curses 的面板棧擴展
platform?--- 獲取底層平臺的標識數據
errno?--- 標準 errno 系統符號
ctypes?--- Python 的外部函數庫
并發執行
threading?--- 基于線程的并行
multiprocessing?--- 基于進程的并行
multiprocessing.shared_memory?--- Shared memory for direct access across processes
concurrent?包
concurrent.futures?--- 啟動并行任務
subprocess?--- 子進程管理
sched?--- 事件調度器
queue?--- 一個同步的隊列類
contextvars?--- 上下文變量
_thread?--- 底層多線程 API
網絡和進程間通信
asyncio?--- 異步 I/O
socket?--- 底層網絡接口
ssl?--- 套接字對象的 TLS/SSL 包裝器
select?--- 等待 I/O 完成
selectors?--- 高級 I/O 復用庫
signal?--- 設置異步事件處理程序
mmap?--- 內存映射文件支持
互聯網數據處理
email?--- 電子郵件與 MIME 處理包
json?--- JSON 編碼和解碼器
mailbox?--- 操作多種格式的郵箱
mimetypes?--- 映射文件名到 MIME 類型
base64?--- Base16, Base32, Base64, Base85 數據編碼
binascii?--- 二進制和 ASCII 碼互轉
quopri?--- 編碼與解碼經過 MIME 轉碼的可打印數據
結構化標記處理工具
html?--- 超文本標記語言支持
html.parser?--- 簡單的 HTML 和 XHTML 解析器
html.entities?--- HTML 一般實體的定義
XML處理模塊
xml.etree.ElementTree?--- ElementTree XML API
xml.dom?--- 文檔對象模型 API
xml.dom.minidom?--- 最小化的 DOM 實現
xml.dom.pulldom?--- 支持構建部分 DOM 樹
xml.sax?--- 支持 SAX2 解析器
xml.sax.handler?--- SAX 處理句柄的基類
xml.sax.saxutils?--- SAX 工具集
xml.sax.xmlreader?--- 用于 XML 解析器的接口
xml.parsers.expat?--- 使用 Expat 的快速 XML 解析
互聯網協議和支持
webbrowser?--- 方便的 Web 瀏覽器控制工具
wsgiref?--- WSGI 工具和參考實現
urllib?--- URL 處理模塊
urllib.request?--- 用于打開 URL 的可擴展庫
urllib.response?--- urllib 使用的 Response 類
urllib.parse?用于解析 URL
urllib.error?--- urllib.request 引發的異常類
urllib.robotparser?--- robots.txt 語法分析程序
http?--- HTTP 模塊
http.client?--- HTTP 協議客戶端
ftplib?--- FTP 協議客戶端
poplib?--- POP3 協議客戶端
imaplib?--- IMAP4 協議客戶端
smtplib?--- SMTP 協議客戶端
uuid?---?RFC 4122?定義的UUID對象
socketserver?--- 用于網絡服務器的框架
http.server?--- HTTP 服務器
http.cookies?--- HTTP狀態管理
http.cookiejar?—— HTTP 客戶端的 Cookie 處理
xmlrpc?--- XMLRPC 服務端與客戶端模塊
xmlrpc.client?--- XML-RPC 客戶端訪問
xmlrpc.server?--- 基本 XML-RPC 服務器
ipaddress?--- IPv4/IPv6 操作庫
多媒體服務
wave?--- 讀寫WAV格式文件
colorsys?--- 顏色系統間的轉換
國際化
gettext?--- 多語種國際化服務
locale?--- 國際化服務
程序框架
turtle?--- 海龜繪圖
cmd?--- 支持面向行的命令解釋器
shlex?—— 簡單的詞法分析
Tk圖形用戶界面(GUI)
tkinter?—— Tcl/Tk 的 Python 接口
tkinter.colorchooser?--- 顏色選擇對話框
tkinter.font?--- Tkinter 字體封裝
Tkinter 對話框
tkinter.messagebox?--- Tkinter 消息提示
tkinter.scrolledtext?--- 滾動文字控件
tkinter.dnd?--- 拖放操作支持
tkinter.ttk?--- Tk 風格的控件
tkinter.tix?--- TK擴展包
一直對不同語言間的交互感興趣,python和C語言又深有淵源,所以對python和c語言交互產生了興趣。
最近了解了python提供的一個外部函數庫 ctypes , 它提供了C語言兼容的幾種數據類型,并且可以允許調用C編譯好的庫。
這里是閱讀相關資料的一個記錄,內容大部分來自 官方文檔 。
ctypes 提供了一些原始的C語言兼容的數據類型,參見下表,其中第一列是在ctypes庫中定義的變量類型,第二列是C語言定義的變量類型,第三列是Python語言在不使用ctypes時定義的變量類型。
創建簡單的ctypes類型如下:
使用 .value 訪問和改變值:
改變指針類型的變量值:
如果需要直接操作內存地址的數據類型:
下面的例子演示了使用C的數組和結構體:
創建指針實例
使用cast()類型轉換
類似于C語言定義函數時,會先定義返回類型,然后具體實現再定義,當遇到下面這種情況時,也需要這么干:
可以簡單地將"so"和"dll"理解成Linux和windows上動態鏈接庫的指代,這里我們以Linux為例。注意,ctypes提供的接口會在不同系統上有出入,比如為了加載動態鏈接庫, 在Linux上提供的是 cdll , 而在Windows上提供的是 windll 和 oledll 。
ctypes會尋找 _as_paramter_ 屬性來用作調用函數的參數傳入,這樣就可以傳入自己定義的類作為參數,示例如下:
用 argtypes 和 restype 來指定調用的函數返回類型。
這里我只是列出了 ctypes 最基礎的部分,還有很多細節請參考官方文檔。
這兩天文章沒有寫,先是早出晚歸出去玩了一整天,然后加班到凌晨3點左右,一天一篇計劃劃水得嚴重啊…
Python比較常見的庫有:Arrow、Behold、Click、Numba、Matlibplot、Pillow等:
1、Arrow
Python中處理時間的庫有datetime,但是它過于簡單,使用起來不夠方便和智能,而Arrow可以說非常的方便和智能。它可以輕松地定位幾個小時之前的時間,可以輕松轉換時區時間,對于一個小時前,2個小時之內這樣人性化的信息也能夠準確解讀。
2、Behold
調試程序是每個程序員必備的技能,對于腳本語言,很多人習慣于使用print進行調試,然而對于大項目來說,print的功能還遠遠不足,我們希望有一個可以輕松使用,調試方便,對變量監視完整,格式已于查看的工具,而Behold就是那個非常好用的調試庫。
3、Click
現在幾乎所有的框架都有自己的命令行腳手架,Python也不例外,那么如何快速開發出屬于自己的命令行程序呢?答案就是使用Python的Click庫。Click庫對命令行api進行了大量封裝,你可以輕松開發出屬于自己的CLI命令集。終端的顏色,環境變量信息,通過Click都可以輕松進行獲取和改變。
4、Numba
如果你從事數學方面的分析和計算,那么Numba一定是你必不可少的庫。Numpy通過將高速C庫包裝在Python接口中來工作,而Cython使用可選的類型將Python編譯為C以提高性能。但是Numba無疑是最方便的,因為它允許使用裝飾器選擇性地加速Python函數。
5、Matlibplot
做過數據分析,數據可視化的數學學生一定知道matlab這個軟件,這是一個收費的數學商用軟件,在Python中,Matlibplot就是為了實現這個軟件中功能開發的第三方Python庫。并且它完全是免費的,很多學校都是用它來進行數學教學和研究的。
6、Pillow
圖像處理是任何時候我們都需要關注的問題,平時我們看到很多ps中的神技,比如調整畫面顏色,飽和度,調整圖像尺寸,裁剪圖像等等,這些其實都可以通過Python簡單完成,而其中我們需要使用的庫就是Pillow。
7、pyqt5
Python是可以開發圖形界面程序的。而pyqt就是一款非常好用的第三方GUI庫,有了它,你可以輕松開發出跨平臺的圖形應用程序,其中qtdesigner設計器,更是加速了我們開發圖形界面的速度。
除了上述介紹的之外,Python還有很多庫,比如:Pandas、NumPy、SciPy、Seaborn、Keras等。
文章題目:python函數庫介紹 pythonmath庫函數
轉載源于:http://www.yijiale78.com/article26/docjcjg.html
成都網站建設公司_創新互聯,為您提供網站導航、小程序開發、響應式網站、移動網站建設、搜索引擎優化、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯