模式切换
标准库与第三方库
常用标准库
datetime 和 time(日期与时间处理)
datetime
模块提供了日期和时间的操作。time
模块提供了时间相关的功能,例如获取当前时间戳、格式化时间等。
python
from datetime import datetime, timedelta
# 获取当前日期和时间
now = datetime.now()
print(f"Current time: {now}")
# 日期加减
tomorrow = now + timedelta(days=1)
print(f"Tomorrow's date: {tomorrow}")
# 格式化日期
formatted_date = now.strftime('%Y-%m-%d %H:%M:%S')
print(f"Formatted date: {formatted_date}")
time
模块可以用于处理时间戳和延时操作:
python
import time
# 获取当前时间戳
current_time = time.time()
print(f"Current timestamp: {current_time}")
# 让程序休眠2秒
time.sleep(2)
print("Waited for 2 seconds.")
os 和 sys(系统相关)
os
模块允许与操作系统进行交互,处理文件路径、环境变量等。sys
模块提供与 Python 解释器相关的功能,如命令行参数、退出代码等。
python
import os
import sys
# 获取当前工作目录
cwd = os.getcwd()
print(f"Current working directory: {cwd}")
# 列出目录中的文件
files = os.listdir('.')
print(f"Files in current directory: {files}")
# 获取命令行参数
args = sys.argv
print(f"Command line arguments: {args}")
re(正则表达式)
re
模块用于正则表达式的匹配和操作,适合处理复杂的字符串模式匹配和查找。
python
import re
# 查找所有匹配的字符串
text = "The rain in Spain"
matches = re.findall(r"\b[a-zA-Z]{4}\b", text)
print(f"Words with exactly 4 letters: {matches}")
# 替换字符串
result = re.sub(r"Spain", "France", text)
print(f"Replaced text: {result}")
collections(高级数据结构)
collections
模块提供了诸如namedtuple
、deque
、Counter
、defaultdict
等高级数据结构,可以简化数据处理。
python
from collections import Counter, defaultdict, namedtuple, deque
# 计数器 Counter
word_list = ['apple', 'banana', 'apple', 'orange', 'banana', 'banana']
word_count = Counter(word_list)
print(f"Word count: {word_count}")
# 默认字典 defaultdict
dd = defaultdict(int)
dd['apple'] += 1
print(f"Defaultdict: {dd}")
# 命名元组 namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(10, 20)
print(f"Point: {p.x}, {p.y}")
# 双端队列 deque
dq = deque([1, 2, 3])
dq.appendleft(0)
print(f"Deque: {dq}")
常用第三方库
numpy(数值计算)
numpy
是进行大规模矩阵运算和数值计算的核心库,提供了高效的多维数组对象(ndarray
)和大量的数学函数。
python
import numpy as np
# 创建数组
arr = np.array([1, 2, 3, 4, 5])
print(f"Array: {arr}")
# 数学运算
arr_squared = arr ** 2
print(f"Squared array: {arr_squared}")
# 创建二维数组(矩阵)
matrix = np.array([[1, 2], [3, 4]])
print(f"Matrix:\n{matrix}")
# 数组的基本运算
sum_matrix = matrix + 10
print(f"Matrix + 10:\n{sum_matrix}")
pandas(数据分析)
pandas
提供了强大的数据结构DataFrame
,非常适合处理表格型数据,如 CSV 文件、Excel 文件等。
python
import pandas as pd
# 创建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
print(f"DataFrame:\n{df}")
# 从CSV文件读取数据
df_from_csv = pd.read_csv('data.csv')
print(f"CSV Data:\n{df_from_csv}")
# 数据筛选和分析
age_filtered = df[df['Age'] > 28]
print(f"Filtered Data:\n{age_filtered}")
matplotlib 和 seaborn(数据可视化)
matplotlib
是 Python 中最基础的绘图库,可以用于生成折线图、柱状图、散点图等。seaborn
是基于matplotlib
的高级绘图库,适合做美观的数据可视化。
python
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
# 使用 matplotlib 生成折线图
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title("Sine Wave")
plt.show()
# 使用 seaborn 生成热力图
data = np.random.rand(10, 12)
sns.heatmap(data)
plt.title("Heatmap Example")
plt.show()
requests(HTTP 请求)
requests
是 Python 中处理 HTTP 请求的优秀库,用于发送 GET、POST 等请求。
python
import requests
# 发送 GET 请求
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
print(f"Status Code: {response.status_code}")
print(f"Response JSON: {response.json()}")
# 发送 POST 请求
payload = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=payload)
print(f"POST Response: {response.json()}")