大家好!今天,我們將一起揭開(kāi)24個(gè)常用模塊的神秘面紗,助你在編程道路上快速升級(jí)!
import os# 查看當(dāng)前工作目錄print(os.getcwd())# 創(chuàng)建新目錄os.mkdir('new_folder')# 列出指定目錄下的文件和子目錄for item in os.listdir('.'): print(item)
os模塊是Python與操作系統(tǒng)對(duì)話(huà)的橋梁,讓你輕松進(jìn)行文件和目錄操作,如獲取當(dāng)前工作目錄、創(chuàng)建新目錄、列出目錄內(nèi)容等。
import sys# 輸出Python版本信息print(sys.version)# 打印命令行參數(shù)for arg in sys.argv: print(arg)
sys模塊提供了訪(fǎng)問(wèn)和控制Python解釋器運(yùn)行時(shí)環(huán)境的方法,比如查看Python版本、獲取命令行參數(shù)等,幫你洞察程序內(nèi)部運(yùn)作機(jī)制。
from datetime import datetime, timedelta# 獲取當(dāng)前日期時(shí)間now = datetime.now()print(now)# 計(jì)算未來(lái)日期future_date = now + timedelta(days=30)print(future_date)
datetime模塊讓處理日期和時(shí)間變得簡(jiǎn)單直觀,你可以獲取當(dāng)前時(shí)間、計(jì)算時(shí)間間隔、進(jìn)行日期格式化等,是編寫(xiě)與時(shí)間相關(guān)的程序不可或缺的好幫手。
import math# 計(jì)算圓面積radius = 5area = math.pi * radius ## 2print(area)# 計(jì)算最大公約數(shù)num1, num2 = ?, 21gcd = math.gcd(num1, num2)print(gcd)
math模塊封裝了大量數(shù)學(xué)函數(shù)和常量,如求平方根、計(jì)算圓周率、求最大公約數(shù)等,滿(mǎn)足你的數(shù)學(xué)運(yùn)算需求。
import random# 生成一個(gè)[0, 1)之間的隨機(jī)浮點(diǎn)數(shù)rand_float = random.random()print(rand_float)# 隨機(jī)從列表中選取一個(gè)元素choices = ['apple', 'banana', 'orange']random_choice = random.choice(choices)print(random_choice)
random模塊負(fù)責(zé)生成各種類(lèi)型的隨機(jī)數(shù),以及對(duì)列表等容器進(jìn)行隨機(jī)抽樣,為你的程序添加不確定性,模擬真實(shí)世界的隨機(jī)行為。
import csv# 寫(xiě)入CSV文件with open('data.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerow(['Name', 'Age']) writer.writerow(['Alice', 25])# 讀取CSV文件with open('data.csv', newline='') as file: reader = csv.reader(file) for row in reader: print(row)
csv模塊簡(jiǎn)化了CSV(逗號(hào)分隔值)文件的讀寫(xiě)操作,無(wú)論是保存數(shù)據(jù)還是分析外部數(shù)據(jù)源,它都是你的得力助手。
import json# 將Python對(duì)象轉(zhuǎn)換為JSON字符串data = {'name': 'John', 'age': 30}json_str = json.dumps(data)print(json_str)# 從JSON字符串解析回Python對(duì)象loaded_data = json.loads(json_str)print(loaded_data)
json模塊用于序列化和反序列化JSON數(shù)據(jù),使得Python程序能夠輕松與使用JSON格式的Web服務(wù)或其他應(yīng)用程序交換數(shù)據(jù)。
import requests# 發(fā)送GET請(qǐng)求并打印響應(yīng)內(nèi)容response = requests.get('https://api.github.com')print(response.text)
requests庫(kù)簡(jiǎn)化了HTTP請(qǐng)求的發(fā)送過(guò)程,無(wú)論是GET、POST還是其他方法,只需幾行代碼就能實(shí)現(xiàn),大大提升了網(wǎng)絡(luò)通信效率。
import pandas as pd# 從CSV文件加載數(shù)據(jù)到DataFramedf = pd.read_csv('data.csv')# 查看前5行數(shù)據(jù)print(df.head())
pandas庫(kù)提供了強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)DataFrame,用于高效地進(jìn)行數(shù)據(jù)分析、清洗、統(tǒng)計(jì)和可視化,是Python數(shù)據(jù)科學(xué)領(lǐng)域的核心工具之一。
import numpy as np# 創(chuàng)建一個(gè)2x2的數(shù)組arr = np.array([[1, 2], [3, 4]])print(arr)# 計(jì)算數(shù)組元素之和sum_arr = np.sum(arr)print(sum_arr)
numpy庫(kù)提供高性能的多維數(shù)組對(duì)象和豐富的數(shù)學(xué)函數(shù),是進(jìn)行數(shù)值計(jì)算、機(jī)器學(xué)習(xí)、信號(hào)處理等領(lǐng)域開(kāi)發(fā)的基礎(chǔ)庫(kù)。
import matplotlib.pyplot as plt# 繪制簡(jiǎn)單的折線(xiàn)圖plt.plot([1, 2, 3, 4], [1, 4, 9, 16])plt.show()
matplotlib庫(kù)用于創(chuàng)建靜態(tài)、動(dòng)態(tài)、交互式的圖表,如折線(xiàn)圖、散點(diǎn)圖、柱狀圖等,是Python數(shù)據(jù)可視化的首選工具。
from scipy.optimize import minimize# 定義目標(biāo)函數(shù)def f(x): return x## 2 + 10*np.sin(x)# 使用優(yōu)化算法找到最小值result = minimize(f, x0=0)print(result.x)
scipy庫(kù)包含眾多科學(xué)計(jì)算工具箱,如最優(yōu)化、插值、積分、信號(hào)處理、統(tǒng)計(jì)分析等,極大地?cái)U(kuò)展了Python在科學(xué)計(jì)算領(lǐng)域的能力。
import re# 使用正則表達(dá)式匹配郵箱地址pattern = r'/b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+/.[A-Z|a-z]{2,}/b'text = 'Contact me at alice@example.com or bob@gmail.com'matches = re.findall(pattern, text)print(matches)
re模塊實(shí)現(xiàn)了正則表達(dá)式的支持,讓你能夠靈活、高效地進(jìn)行文本模式匹配、查找、替換等操作。
import threading# 定義線(xiàn)程任務(wù)def thread_task(name): print(f"Thread {name} started.") # ... 執(zhí)行任務(wù) ... print(f"Thread {name} finished.")# 創(chuàng)建并啟動(dòng)兩個(gè)線(xiàn)程t1 = threading.Thread(target=thread_task, args=("Thread 1",))t2 = threading.Thread(target=thread_task, args=("Thread 2",))t1.start()t2.start()# 等待所有線(xiàn)程完成t1.join()t2.join()print("All threads finished.")
threading模塊支持多線(xiàn)程編程,使程序能夠在同一時(shí)刻執(zhí)行多個(gè)任務(wù),提高程序并發(fā)性能和響應(yīng)速度。
import timeit# 測(cè)試代碼塊執(zhí)行時(shí)間setup = "import math"statement = "math.factorial(100)"elapsed_time = timeit.timeit(setup=setup, stmt=statement, number=1000)print(f"Average execution time: {elapsed_time/1000:.6f} seconds")
timeit模塊提供了一種簡(jiǎn)便的方法來(lái)測(cè)量小段代碼的執(zhí)行時(shí)間,幫助開(kāi)發(fā)者評(píng)估代碼性能,進(jìn)行優(yōu)化。
import unittestclass TestMathFunctions(unittest.TestCase): def test_factorial(self): self.assertEqual(math.factorial(5), 120) def test_gcd(self): self.assertEqual(math.gcd(18, 24), 6)if __name__ == '__main__': unittest.main()
unittest模塊是Python標(biāo)準(zhǔn)庫(kù)中的單元測(cè)試框架,通過(guò)編寫(xiě)測(cè)試用例來(lái)確保代碼的正確性和穩(wěn)定性。
import argparseparser = argparse.ArgumentParser(description='Process some integers.')parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator')parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)')args = parser.parse_args()print(args.accumulate(args.integers))
argparse模塊用于創(chuàng)建用戶(hù)友好的命令行接口,輕松處理程序接受的命令行參數(shù)。
import logginglogging.basicConfig(level=logging.INFO)logger = logging.getLogger(__name__)logger.info("This is an informative message.")logger.warning("Watch out! This might be a problem.")
logging模塊提供了通用的日志記錄系統(tǒng),方便程序在運(yùn)行過(guò)程中記錄調(diào)試信息、異常情況等,便于問(wèn)題排查和跟蹤。
import sqlite3conn = sqlite3.connect('example.db')cursor = conn.cursor()cursor.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)''')cursor.execute("INSERT INTO stocks VALUES ('202.jpg', 'BUY', 'RHAT', 100, 35.14)")conn.commit()conn.close()
sqlite3模塊是Python內(nèi)置的SQLite數(shù)據(jù)庫(kù)驅(qū)動(dòng),允許程序直接操作SQLite數(shù)據(jù)庫(kù),進(jìn)行數(shù)據(jù)存儲(chǔ)、查詢(xún)等操作。
import hashlibmessage = "Hello, world!".encode()digest = hashlib.sha256(message).hexdigest()print(digest)
hashlib模塊提供了多種安全的哈希函數(shù),如SHA-256,用于生成消息摘要或校驗(yàn)數(shù)據(jù)完整性。
import xml.etree.ElementTree as ETroot = ET.Element("root")child = ET.SubElement(root, "child", name="element1")ET.SubElement(child, "grandchild").text = "Some text"tree = ET.ElementTree(root)tree.write("output.xml")
xml.etree.ElementTree模塊提供了處理XML文檔的API,包括解析、構(gòu)建、搜索XML樹(shù)等功能。
import shutilshutil.copyfile('source.txt', 'destination.txt')shutil.move('old_file.txt', 'new_file.txt')shutil.rmtree('directory_to_remove')
shutil模塊提供了高級(jí)文件和目錄操作功能,如復(fù)制、移動(dòng)文件,刪除目錄及其內(nèi)容等。
import itertoolscombinations = itertools.combinations(range(4), 2)for combo in combinations: print(combo)
itertools模塊包含了一系列高效且內(nèi)存友好的迭代器函數(shù),如生成組合、排列、無(wú)限序列等,極大豐富了Python的循環(huán)結(jié)構(gòu)。
import functools@functools.lru_cache(maxsize=32)def fib(n): if n < 2: return n return fib(n-1) + fib(n-2)print(fib(10))
functools模塊提供了許多用于處理函數(shù)的工具,如裝飾器、高階函數(shù)等,有助于編寫(xiě)更簡(jiǎn)潔、更高效的代碼。
恭喜你,已經(jīng)完成了Python常用模塊的探險(xiǎn)之旅!每個(gè)模塊都如同一塊拼圖,當(dāng)你將它們熟練運(yùn)用到實(shí)際項(xiàng)目中,便能構(gòu)建出強(qiáng)大而優(yōu)雅的Python應(yīng)用。為了更好地掌握這些模塊,建議:
編程之路永無(wú)止境,持續(xù)學(xué)習(xí)與實(shí)踐是進(jìn)步的關(guān)鍵。祝你在Python的世界里游刃有余,盡情創(chuàng)造!
本文鏈接:http://www.www897cc.com/showinfo-26-91169-0.html關(guān)于 Python 的 24 個(gè)常用模塊簡(jiǎn)介
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
上一篇: 深度解析:Elasticsearch 寫(xiě)入請(qǐng)求處理流程
下一篇: 我們一起了解Java垃圾收集