Python常用內(nèi)置標(biāo)準(zhǔn)庫(kù)超詳細(xì)學(xué)習(xí)筆記
前言
這篇筆記將帶你走進(jìn) Python 的“百寶箱”。Python 被稱(chēng)為“自帶電池”(Batteries Included)的語(yǔ)言,就是因?yàn)樗鼉?nèi)置了極其豐富的標(biāo)準(zhǔn)庫(kù),無(wú)需安裝即可直接 import 使用。
1. 時(shí)間與日期:datetime
處理時(shí)間、日期、時(shí)區(qū)轉(zhuǎn)換的利器。
from datetime import datetime, timedelta
# 1. 獲取當(dāng)前時(shí)間
now = datetime.now()
print(f"當(dāng)前時(shí)間: {now}")
# 2. 格式化輸出 (strftime)
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 2023-10-27 14:30:05
# 3. 字符串轉(zhuǎn)時(shí)間對(duì)象 (strptime)
date_str = "2023-01-01"
dt_obj = datetime.strptime(date_str, "%Y-%m-%d")
# 4. 時(shí)間計(jì)算 (timedelta)
yesterday = now - timedelta(days=1)
future = now + timedelta(hours=2)2. 數(shù)學(xué)與隨機(jī)數(shù):math&random
math:高精度數(shù)學(xué)計(jì)算
import math print(math.pi) # 圓周率 3.14159... print(math.sqrt(16)) # 開(kāi)平方 4.0 print(math.ceil(3.1)) # 向上取整 4
random:生成偽隨機(jī)數(shù)
import random print(random.random()) # 0到1之間的浮點(diǎn)數(shù) print(random.randint(1, 10)) # 1到10之間的隨機(jī)整數(shù)(含10) fruits = ["蘋(píng)果", "香蕉", "橙子"] print(random.choice(fruits)) # 隨機(jī)選一個(gè) items = [1, 2, 3, 4, 5] random.shuffle(items) # 打亂列表順序
3. 數(shù)據(jù)交換格式:json
JSON 是互聯(lián)網(wǎng)最通用的數(shù)據(jù)格式。Python 字典與 JSON 字符串的轉(zhuǎn)換非常簡(jiǎn)單。
import json
data = {"name": "Jojo", "age": 25, "is_admin": False}
# 1. 編碼:字典 -> JSON 字符串 (dumps)
json_str = json.dumps(data, indent=4) # indent讓輸出更漂亮
# 2. 解碼:JSON 字符串 -> 字典 (loads)
parsed_data = json.loads(json_str)
# 3. 處理文件 (dump/load)
with open("config.json", "w") as f:
json.dump(data, f) # 直接寫(xiě)入文件4. 系統(tǒng)接口與參數(shù):sys
主要用于與 Python 解釋器和系統(tǒng)環(huán)境交互。
import sys # 1. 獲取命令行參數(shù) (常用語(yǔ)腳本傳參) # 運(yùn)行命令: python script.py arg1 arg2 print(sys.argv) # 2. 退出程序 # sys.exit(0) # 0表示正常退出 # 3. 模塊搜索路徑 # print(sys.path) # 4. 查看系統(tǒng)平臺(tái) print(sys.platform) # win32, darwin(Mac), linux
5. 高級(jí)容器數(shù)據(jù)類(lèi)型:collections
它是內(nèi)置 list/dict/tuple 的增強(qiáng)版。
Counter: 快速計(jì)數(shù)器。defaultdict: 帶有默認(rèn)值的字典(防止 KeyError)。
from collections import Counter, defaultdict
# Counter 示例:統(tǒng)計(jì)詞頻
text = "apple banana apple orange apple banana"
counts = Counter(text.split())
print(counts) # Counter({'apple': 3, 'banana': 2, 'orange': 1})
print(counts.most_common(1)) # 獲取出現(xiàn)次數(shù)最多的
# defaultdict 示例
d = defaultdict(int) # 默認(rèn)值為 0
d["count"] += 1 # 不會(huì)報(bào)錯(cuò),直接從0加到16. 正則表達(dá)式:re
用于復(fù)雜的文本搜索、替換和匹配。
import re
text = "我的郵箱是 jojo_123@example.com,請(qǐng)聯(lián)系我。"
# 匹配郵箱的簡(jiǎn)單正則
pattern = r'[a-zA-Z0-9_]+@[a-zA-Z0-9]+\.[a-zA-Z]+'
# 搜索
match = re.search(pattern, text)
if match:
print(f"找到郵箱: {match.group()}")
# 替換
clean_text = re.sub(pattern, "[HIDDEN]", text)
print(clean_text)什么時(shí)候該用哪個(gè)庫(kù)?
| 需求 | 推薦庫(kù) |
|---|---|
| 處理文件路徑、創(chuàng)建文件夾 | os / pathlib |
| 讀取/寫(xiě)入 CSV 數(shù)據(jù) | csv |
| 網(wǎng)絡(luò)請(qǐng)求(標(biāo)準(zhǔn)庫(kù)版) | urllib.request(雖然大家更愛(ài)用第三方 requests) |
| 壓縮和解壓文件 | zipfile / tarfile |
| 計(jì)算代碼執(zhí)行時(shí)間 | timeit |
| 記錄運(yùn)行日志 | logging |
總結(jié)建議
- 先查標(biāo)準(zhǔn)庫(kù):在準(zhǔn)備自己寫(xiě)一個(gè)復(fù)雜的功能前,先搜索“Python standard library [功能名]”,通常已經(jīng)有現(xiàn)成的解決方案了。
- 避免重復(fù)造輪子:比如
Counter計(jì)數(shù)比你自己寫(xiě)for循環(huán)統(tǒng)計(jì)要快得多,也簡(jiǎn)潔得多。 - 閱讀文檔:Python 官方文檔(docs.python.org)是學(xué)習(xí)這些庫(kù)的最好地方。
到此這篇關(guān)于Python常用內(nèi)置標(biāo)準(zhǔn)庫(kù)的文章就介紹到這了,更多相關(guān)Python常用內(nèi)置標(biāo)準(zhǔn)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python之dict(或?qū)ο?與json之間的互相轉(zhuǎn)化實(shí)例
今天小編就為大家分享一篇Python之dict(或?qū)ο?與json之間的互相轉(zhuǎn)化實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Python使用WebSocket和SSE實(shí)現(xiàn)HTTP服務(wù)器消息推送方式
本文介紹了兩種實(shí)時(shí)數(shù)據(jù)獲取的技術(shù):WebSocket和SSE,WebSocket是全雙工通信協(xié)議,支持雙向通信,但需要專(zhuān)門(mén)定義數(shù)據(jù)協(xié)議,SSE是一種單工通信技術(shù),基于HTTP的流式數(shù)據(jù)傳輸,客戶端開(kāi)發(fā)簡(jiǎn)單,但只能單工通信2024-11-11
Python OpenCV實(shí)現(xiàn)圖像模板匹配詳解
提供一個(gè)模板圖像,一個(gè)目標(biāo)圖像,且滿足模板圖像是目標(biāo)圖像的一部分,從目標(biāo)圖像中尋找特定的模板圖像的過(guò)程,即為模板匹配。本文將詳細(xì)講解如何利用Python OpenCV實(shí)現(xiàn)圖像模板匹配,需要的可以參考一下2022-04-04
pytest多進(jìn)程或多線程執(zhí)行測(cè)試實(shí)例
這篇文章介紹了pytest多進(jìn)程或多線程執(zhí)行測(cè)試的實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
python使用參數(shù)對(duì)嵌套字典進(jìn)行取值的方法
這篇文章主要介紹了python使用參數(shù)對(duì)嵌套字典進(jìn)行取值,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
Python異常處理之常見(jiàn)異常類(lèi)型絕佳實(shí)踐詳解
這篇文章主要為大家介紹了Python異常處理之常見(jiàn)異常類(lèi)型絕佳實(shí)踐詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Python并行編程多線程鎖機(jī)制Lock與RLock實(shí)現(xiàn)線程同步
這篇文章主要為大家介紹了Python并行編程多線程鎖機(jī)制Lock與RLock實(shí)現(xiàn)線程同步示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
基于Python實(shí)現(xiàn)地標(biāo)景點(diǎn)識(shí)別功能
地標(biāo)景點(diǎn)識(shí)別是一種基于計(jì)算機(jī)視覺(jué)技術(shù)的應(yīng)用,旨在通過(guò)對(duì)圖像進(jìn)行分析和處理,自動(dòng)識(shí)別出圖片中的地標(biāo)景點(diǎn),本文將介紹地標(biāo)景點(diǎn)識(shí)別的背景和原理,并使用Python編程語(yǔ)言來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的地標(biāo)景點(diǎn)識(shí)別系統(tǒng),感興趣的朋友可以參考下2024-01-01

