【Python】常見模塊及其用法

文章目錄

    • 1. 什么是模塊和包?
    • 2. 常見的模塊及其用法
      • 2.1 time
        • 概覽
        • 2.1.1 時間獲取方法
        • 2.1.2 時間格式化與解析
        • 2.1.3 程序計時與延遲
        • 2.1.4 時間轉換
      • 2.2 random
        • 概覽
        • 2.2.1 基本隨機數
        • 2.2.2 隨機整數
        • 2.2.3 序列操作
        • 2.2.4 概率分布
        • 2.2.5 隨機種子
        • 2.2.6 狀態管理
      • 2.3 os
        • 概覽
        • 2.3.1 文件與目錄操作
        • 2.3.2 路徑處理
        • 2.3.3 系統信息與環境
      • 2.4 sys
        • 概覽
        • 2.4.1 命令行參數處理
        • 2.4.2 標準輸入/輸出控制
        • 2.4.3 系統信息與配置
        • 2.4.4 程序流程控制
      • 2.5 json
        • 概覽
        • 2.5.1 基本序列化與反序列化
        • 2.5.2 文件讀寫操作
        • 2.5.3 高級序列化控制

1. 什么是模塊和包?


  • 模塊是一個包含python代碼的文件(后綴名.py),內容可以包括函數、類、變量等
# 文件名為hello.py
def func():print("hello world!")
func()

使用模塊

import hello

  • 包是包含多個模塊的目錄,它通過__init__.py文件(可以是空文件)來標識這是一個Python包。
mypackage/
│── __init__.py
│── module1.py
│── module2.py
└── subpackage/│── __init__.py│── module3.py

使用包

from mypackage import module1,module2
from mypackage.subpackage import module3

2. 常見的模塊及其用法

本文主要講解模塊有:time random os sys json

  1. time 時間處理
  2. random 生成隨機數和實現隨機選擇功能
  3. os 操作系統交互
  4. sys 系統相關功能
  5. json JSON 數據處理

2.1 time

時間處理


概覽
方法功能示例
time()時間戳,1970年1月1日00:00:00 UTC至今的秒數1753161307.4428105
ctime()獲取可讀的時間字符串“Tue Jul 22 13:15:07 2025"
localtime()獲取結構化時間對象(包含年、月、日等字段)time.struct_time(tm_year=2025, tm_mon=7, tm_mday=22, tm_hour=13, tm_min=15, tm_sec=7, tm_wday=1, tm_yday=203, tm_isdst=0)
strftime("%Y-%m-%d %H:%M:%S",struct_time)時間格式化(字符串)“2025-07-22 13:33:09”
strptime(“2025-07-22”)時間解析“time.struct_time(tm_year=2025, tm_mon=7, tm_mday=22, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=203, tm_isdst=-1)”
perf_counter())精確計時(性能測試)耗時時間
sleep(2.5)程序暫停停頓2.5秒
localtime()時間戳 -> struct_time時間類型轉化
mktime()struct_time -> 時間戳時間類型轉化
2.1.1 時間獲取方法
  1. time.time()
  • 功能:獲取當前的時間戳(1970年1月1日00:00:00 UTC至今的秒數)
  • 示例
    import time
    print(time.time())  # 輸出:1753161307.4428105(當前時間)
    
  1. time.ctime()
  • 功能:獲取可讀的時間字符串
  • 示例
print(time.ctime()) 
# 輸出:“Tue Jul 22 13:15:07 2025”
  1. time.localtime()
  • 功能:獲取結構化時間對象(包含年、月、日等字段)
  • 示例
struct_time = time.localtime()
print(struct_time.tm_year, struct_time.tm_mon,struct_time.tm_mday) 
# 輸出:2025 7 22
2.1.2 時間格式化與解析
  1. time.strftime()
  • 功能:時間格式化
  • 示例
struct_time = time.localtime()
formatted = time.strftime("%Y-%m-%d %H:%M:%S",struct_time)
# 輸出 2025-07-22 13:33:09
  1. time.strptime()
  • 功能:時間解析(字符串 -> struct_time)
  • 示例
parsed_time = time.strptime("2025-07-22", "%Y-%m-%d") 
print(parsed_time)
# 輸出:
# time.struct_time(tm_year=2025, tm_mon=7, tm_mday=22, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=203, tm_isdst=-1)
2.1.3 程序計時與延遲
  1. time.pref_counter()
  • 功能:精確計時(性能測試)
  • 示例
start = time.perf_counter()
time.sleep(2)
end = time.perf_counter()
print(f"執行耗時:{end - start:.4f}秒")
# 輸出:
# 執行耗時:2.0003秒
  1. time.sleep()
  • 功能:程序暫停
  • 示例
start = int(time.time())
time.sleep(2)
end = int(time.time())
print(f"停頓{end - start:.2f}秒")# 輸出:
# 停頓2.00秒
2.1.4 時間轉換
  1. 時間戳 -> struct_time
  • 方法:time.localtime()
  • 示例
timestamp = time.time()
ts_to_struct = time.localtime(timestamp)
print(ts_to_struct)# 輸出:
# time.struct_time(tm_year=2025, tm_mon=7, tm_mday=22, tm_hour=13, tm_min=50, tm_sec=49, tm_wday=1, tm_yday=203, tm_isdst=0)
  1. struct_time -> 時間戳
  • 方法:time.mktime()
  • 示例
struct_time = time.localtime()
struct_to_ts = time.mktime(struct_time)
print(struct_to_ts)# 輸出:
# 1753163493.0

2.2 random

生成隨機數和實現隨機選擇功能

概覽
方法功能示例
random()[0.0, 1.0) 的隨機浮點數0.374501
uniform(a, b)[a, b] 的隨機浮點數7.823
randint(a, b)[a, b] 的隨機整數4
randrange(start, stop, step)指定范圍的隨機整數45
choice(seq)序列中的隨機元素“green”
choices(population, k)有放回抽樣[‘B’, ‘C’]
sample(population, k)無放回抽樣[3, 1, 5]
shuffle(seq)原地打亂序列[‘K’, ‘A’, ‘J’, ‘Q’]
gauss(mu, sigma)高斯分布隨機數0.735
seed(a)初始化隨機種子固定隨機序列
getstate() / setstate()保存/恢復狀態重現隨機序列
2.2.1 基本隨機數
  1. random.random()
  • 功能:生成 [0.0, 1.0) 之間的隨機浮點數。
  • 示例
    import random
    print(random.random())  # 輸出:0.374501(隨機值)
    

控制小數位數

  1. 內置函數/四舍五入
    round(random.random(), 3) # 默認 3 位小數
  2. 格式化
    formatted = f{random.random():.3f} # 默認 3 位小數
  1. random.uniform(a, b)
  • 功能:生成 [a, b] 之間的隨機浮點數。
  • 示例
    print(random.uniform(2, 10))  # 輸出:7.342(隨機浮點數)
    

2.2.2 隨機整數
  1. random.randint(a, b)
  • 功能:生成 [a, b] 之間的隨機整數(包含兩端)。
  • 示例
    print(random.randint(1, 10))  # 輸出:3
    
  1. random.randrange(start, stop, step)
  • 功能:從 range(start, stop, step) 中隨機選擇一個整數 [start, stop) 左開右閉
  • 示例
    print(random.randrange(0, 100, 5))  # 輸出:45(0,5,10,...,95 中的隨機數)
    

2.2.3 序列操作
  1. random.choice(seq)
  • 功能:從非空序列中隨機選擇一個元素。
  • 示例
    colors = ['red', 'green', 'blue']
    print(random.choice(colors))  # 輸出:'green'(隨機顏色)
    
  1. random.choices(population, weights=None, k=1)
  • 功能:從序列中有放回地隨機抽取 k 個元素(可設置權重)。
  • 示例
    result = random.choices(['A', 'B', 'C'], weights=[0.2, 0.5, 0.3], k=2)
    print(result)  # 輸出:['B', 'C'](權重越高越可能被選中)
    
  1. random.sample(population, k)
  • 功能:從序列中無放回地隨機抽取 k 個唯一元素。
  • 示例
    numbers = [1, 2, 3, 4, 5]
    print(random.sample(numbers, 3))  # 輸出:[3, 1, 5](隨機不重復的3個數)
    
  1. random.shuffle(seq)
  • 功能:將序列原地隨機打亂(修改原序列)。
  • 示例
    cards = ['A', 'K', 'Q', 'J']
    random.shuffle(cards)
    print(cards)  # 輸出:['K', 'A', 'J', 'Q'](順序隨機)
    

2.2.4 概率分布
  1. random.gauss(mu, sigma)
  • 功能:生成高斯分布(正態分布)的隨機數,mu 為均值,sigma 為標準差。
  • 示例
    print(random.gauss(0, 1))  # 輸出:0.735(標準正態分布中的隨機值)
    
  1. random.expovariate(lambd)
  • 功能:生成指數分布的隨機數,lambd 是事件發生率的倒數。
  • 用途: 多用于建模隨機事件之間的時間間隔,尤其適合那些平均間隔已知但具體時間不確定的場景。
  • 示例
    print(random.expovariate(1.0/5))  # 輸出:3.2(模擬平均每5秒發生一次的事件間隔)
    

2.2.5 隨機種子
  1. random.seed(a=None)
  • 功能:初始化隨機數生成器,相同種子生成相同隨機序列(用于可重復性)。
  • 示例
    random.seed(42)  # 固定種子
    print(random.random())  # 輸出:0.6394(每次運行結果相同)
    

2.2.6 狀態管理
  1. random.getstate()random.setstate(state)
  • 功能:保存/恢復隨機數生成器的內部狀態。
  • 原理: 這是偽隨機數生成器的典型行為,用于保證生成的隨機數序列具有不可預測性和多樣性
  • 示例
    state = random.getstate()  # 保存當前狀態
    print(random.random())     # 隨機數1
    random.setstate(state)     # 恢復狀態
    print(random.random())     # 再次輸出相同的隨機數1
    

2.3 os

操作系統交互

概覽
方法功能備注
mkdir()創建單級目錄存在時創建的目錄會報錯
makedirs()創建多級目錄exist_ok = True 已存在創建的目錄不會報錯
rename()重命名
remove()刪除文件
scandir()目錄遍歷
walk()遞歸遍歷目錄
os.path.join()路徑拼接
os.path.dirname() 、os.path.basename()、os.path.splitext()路徑分解
os.path.exists、os.path.isfile()、os.path.isdir()路徑檢查
os.getcwd()獲取當前路徑
os.chdir()修改工作目錄
os.environ.get()獲取環境變量
os.system()執行系統命令
2.3.1 文件與目錄操作
  1. 創建目錄
  • 方法os.mkdir() / os.makedirs()
  • 示例
import os
os.mkdir("1") # 創建單級目錄 | 文件已存在會報錯
os.makedirs("test/1", exist_ok=True) # 創建多級目錄,exist_ok=True,當文件已存在時不報錯
  1. 文件操作
  • 方法os.rename() / os.remove()
  • 示例
import os
os.rename("old.txt","new.txt") # 重命名
os.remove("test/1.txt") # 刪除文件
  1. 目錄遍歷
  • 方法os.scandir()
  • 示例
import os
for entry in os.scandir("."): # . 遍歷當前目錄下的所有 文件 和 子目錄 if entry.is_file():print("文件:",entry)
# 輸出:
# 文件: <DirEntry '1.py'>
2.3.2 路徑處理
  1. 路徑分解
  • 方法os.path.dirname() | os.path.basename() | os.path.splitext()
  • 示例
import ospath = "/home/user/documents/report.txt"# 獲取路徑組成部分
dir_path = os.path.dirname(path)  # 目錄路徑: "/home/user/documents"
file_name = os.path.basename(path)  # 完整文件名: "report.txt"
file_root, file_ext = os.path.splitext(file_name)  # 分離主名和擴展名: ("report", ".txt")# 完整路徑拆分
head, tail = os.path.split(path)  # ("/home/user/documents", "report.txt")
  1. 路徑拼接
  • 方法os.path.join()
  • 示例
full_path = os.path.join("dir","subdir","file.txt")
  1. 路徑檢查
  • 方法os.path.exists() | os.path.isfile() | os.path.isdir()
  • 示例
print(os.path.exists("1.txt"))  # 是否存在
print(os.path.isfile("1.txt"))  # 是否是文件
print(os.path.isdir("1.txt"))  # 是否是目錄# 輸出答案(根據個人本地要查詢的文件為主)
# True
# True
# False
2.3.3 系統信息與環境
  1. os.getcwd()
  • 功能:獲取當前工作目錄
  • 示例
 cwd = os.getcwd()
  1. os.chdir()
  • 功能:修改工作目錄
  • 示例
 cwd = os.chdir("/new/path")
  1. os.environ.get()
  • 功能:獲取環境變量
  • 示例
home_dir = os.enciron.get("HOME","default") # 查找 HOME 值,沒有則返回默認值 default
print(home_dir)
  1. os.system()
  • 功能:執行系統命令
  • 示例
os.system("ls -l")

2.4 sys

系統相關功能

概覽
方法功能備注
sys.argv獲取命令行參數
sys.stdout重定向輸出
sys.stdin.readline().strip()讀取標準輸入
sys.version獲取Python版本信息
sys.path獲取模塊搜索路徑
sys.exit(1)退出程序并返回狀態碼非0狀態碼表示異常退出
sys.stdout.flush()刷新輸出緩沖區確保立即顯示
2.4.1 命令行參數處理
  1. sys.argv
  • 功能:獲取命令行參數
  • 示例
# 假設執行:python scripts.py arg1 arg2 --option=value
print(sys.argv) # ['script.py', 'arg1', 'arg2', '--option=value']
# 實際應用:處理命令行選項
if len()sys.argv) > 1:action = sys.argv[1] # arg1if action == "start":print("")elif action == "stop":print("")
2.4.2 標準輸入/輸出控制
  1. sys.stdout
  • 功能:重定向輸出
  • 示例
with open('1.txt','w',encoding="utf-8-sig") as f:sys.stdout = f # 重定向標準輸出到文件print("這條信息將寫入文件")sys.stdout = sys._stdout__ # 恢復標準輸出
# 會將print中的內容寫進 1.txt文件內
  1. sys.stdin.readline().strip()
  • 功能:讀取標準輸入
  • 示例
print("請輸入內容:")
user_input = sys.stdin.readline().strip()
print(f"您輸入了:{user_input}")# 輸出:
"""
請輸入內容:
1 2 3 
您輸入了:1 2 3
"""
2.4.3 系統信息與配置
  1. sys.version
  • 功能:獲取Python版本信息
  • 示例
print(sys.version)
# 輸出
"""
3.11.9 (tags/v3.11.9:de54cf5, Apr  2 2024, 10:12:12) [MSC v.1938 64 bit (AMD64)]
"""
  1. sys.path
  • 功能:獲取模塊搜索路徑
  • 示例
print(sys.path) # 輸出列表形式,包含Python查找模塊的路徑
  1. sys.platform
  • 功能:獲取操作系統平臺
  • 示例
print(sys.platform) # 'win32', 'linux', 'darwin' (macOS)
# 輸出 
"""
win32
"""
2.4.4 程序流程控制
  1. sys.exit(n)
  • 功能:退出程序并返回狀態碼(n=0時,正常退出;n=1《或是其它數字》時表示異常退出)
  • 場景:通常用于腳本或程序中發生錯誤時提前退出,表示異常終止
  • 示例
if error_occurred:sys.exit(1) # 非0狀態碼表示異常退出
  1. sys.stdout.flush()
print("處理中...", end="")
sys.stdout.flush()
# 執行耗時操作...
print("完成!")

2.5 json

JSON 數據處理

概覽
方法功能
json.dumps()Python -> JSON字符串
json.loads()JSON字符串 -> Python
json.dump寫入JSON文件
json.load()讀取JSON文件
2.5.1 基本序列化與反序列化
  1. Python -> JSON字符串
  • 方法json.dumps()
  • 示例
import json
data = {"name": "Alice","age": 30,"hobbies": ["reading"],"is_student": False,
}
json_str = json.dumps(data, indent=2)
print(json_str)# 輸出:
"""
{"name": "Alice","age": 30,"hobbies": ["reading","hiking"],"is_student": false
}
"""
  1. JSON字符串 -> Python
  • 方法json.loads()
  • 示例
restored_data = json.loads(json_str)
print(restored_data["name"]) # "Alice"
2.5.2 文件讀寫操作
  1. json.dump()
  • 功能:寫入JSON文件
  • 示例
with open("data.json", "w") as f:json.dump(data, f, indent=4) # 控制為 4 縮進空格
  1. json.load()
  • 功能:讀取JSON文件
  • 示例
with open("data.json") as f:loaded_data = json.load(f)
2.5.3 高級序列化控制

# 處理自定義對象
class User:def __init__(self, name, age):self.name = nameself.age = age# 自定義序列化方法
def user_encoder(obj):if isinstance(obj, User): # 判斷 obj 是否是 User 的實例return {"name": obj.name, "age": obj.age}raise TypeError(f"Object of type {obj.__class__.__name__} is not JSON serializable")user = User("Bob", 40)
user_json = json.dumps(user, default=user_encoder)  # {"name": "Bob", "age": 40}# 自定義反序列化方法
def user_decoder(dct):if "name" in dct and "age" in dct:return User(dct["name"], dct["age"])return dctrestored_user = json.loads(user_json, object_hook=user_decoder)
print(restored_user.name)  # "Bob"
```

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89961.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89961.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89961.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

洛谷 P3478 [POI 2008] STA-Station

【題目鏈接】 洛谷 P3478 [POI 2008] STA-Station 【題目考點】 1. 樹形動規&#xff1a;換根動規 換根動規&#xff0c;又名二次掃描法&#xff0c;一般是給一顆不定根樹&#xff0c;通過兩次掃描來求解。 我們可以先任選一個根結點root&#xff0c;通過樹形動規的思想計算…

【爬蟲】03 - 爬蟲的基本數據存儲

爬蟲03 - 爬蟲的數據存儲 文章目錄爬蟲03 - 爬蟲的數據存儲一&#xff1a;CSV數據存儲1&#xff1a;基本介紹2&#xff1a;基本使用3&#xff1a;高級使用4&#xff1a;使用示例二&#xff1a;JSON數據存儲1&#xff1a;基礎json讀寫2&#xff1a;字符串和對象的轉換3&#xff…

深入分析計算機網絡數據鏈路層和網絡層面試題

計算機網絡體系結構1. 請簡述 OSI 七層模型和 TCP/IP 四層模型&#xff0c;并比較它們的異同。OSI 七層模型&#xff1a;應用層&#xff1a;直接為用戶的應用進程提供服務&#xff0c;如 HTTP&#xff08;超文本傳輸協議&#xff0c;用于 Web 瀏覽器與服務器通信&#xff09;、…

云服務器新裝的mysql8,無法通過遠程連接,然后本地pymysql也連不上

阿里云服務器&#xff0c;用apt-get新裝的mysql-server&#xff0c;竟然無法通過遠程連接到&#xff0c;竟然是這個原因。不是防火墻&#xff0c;iptables早就關了。也不是安全組&#xff0c;不是人為限制訪問的話&#xff0c;根本沒必要弄安全組 排查過程 netstat -antop|grep…

質量即服務:從測試策略到平臺運營的全鏈路作戰手冊

&#xff08;零&#xff09;為什么需要“質量即服務” 當業務方說“今晚一定要上線”&#xff0c; 當開發說“我只改了兩行代碼”&#xff0c; 當運維說“回滾窗口只有 5 分鐘”&#xff0c; 質量必須像水電一樣隨取隨用&#xff0c;而不是上線前的大壩泄洪。 這篇手冊提供一張…

Java -- 自定義異常--Wrapper類--String類

自定義異常&#xff1a;概念&#xff1a;當程序中出現了某些錯誤&#xff0c;但該錯誤信息并沒有在Throwable子類中描述處理&#xff0c;這個時候可以自己設計異常&#xff0c;用于描述該錯誤信息。步驟&#xff1a;1. 定義類&#xff1a;自定義異常類名&#xff08;程序員自己…

一文速通《線性方程組》

目錄 一、解題必記知識點 二、解題必備技巧 三、非齊次線性方程組求解 四、齊次線性方程組求解 ★五、解析題目信息&#xff0c;獲取暗含條件 一、解題必記知識點 (1) (2)基礎解系線性無關&#xff0c;基礎解系 解空間的一個基&#xff0c;基 一組線性無關的、能夠生…

【Django】DRF API版本和解析器

講解 Python3 下 Django REST Framework (DRF) API 版本控制解析器&#xff08;Parser&#xff09;一、DRF API 版本控制詳解 API 版本控制是構建健壯、可維護的 RESTful API 的關鍵&#xff0c;尤其在項目演進中需要兼容不同版本的客戶端請求。 1.1 API 版本控制的核心原理 AP…

Windows系統暫停更新工具

功能說明 暫停更新至2999年恢復系統更新徹底禁用更新&#xff08;不可逆&#xff09; 使用方法 下載解壓后雙擊運行 .bat 文件 輸入數字選擇功能&#xff1a; 輸入 1&#xff1a;暫停更新至2999年&#xff08;推薦&#xff09;輸入 2&#xff1a;恢復系統更新輸入 3&#xf…

git push新版問題解決

git 好像不能通過username:password的方式來git push了。但我的電腦依然彈出username和password的彈窗。轉戰ssh來git push。由于之前是用git clone克隆的&#xff0c;需要再轉換成ssh的url來git push。

PyCharm + AI 輔助編程

PyCharm AI&#xff1a;初學者友好的 2 個實用場景&#xff08;附操作步驟&#xff09; PyCharm 專業版&#xff08;或通過插件集成&#xff09;支持 AI 輔助編程&#xff08;如 JetBrains AI 或 GitHub Copilot&#xff09;&#xff0c;能根據代碼上下文自動生成代碼、解釋邏…

瘋狂星期四文案網第15天運營日記

網站運營第15天&#xff0c;點擊觀站&#xff1a; 瘋狂星期四 crazy-thursday.com 全網最全的瘋狂星期四文案網站 運營報告 昨日訪問量 昨天只有20來ip, 太慘了&#xff0c;感覺和最近沒有發新段子有關&#xff0c;也沒有發新的外鏈&#xff0c;不知道這周四會怎么樣 昨日搜…

如何解決pip安裝報錯ModuleNotFoundError: No module named ‘Cython’問題

【Python系列Bug修復PyCharm控制臺pip install報錯】如何解決pip安裝報錯ModuleNotFoundError: No module named ‘Cython’問題 摘要 在使用 PyCharm 控制臺或命令行執行 pip install Cython 時&#xff0c;常會遇到 ModuleNotFoundError: No module named Cython 的報錯。本…

freertos任務調度關鍵函數理解 vTaskSwitchContext

void vTaskSwitchContext(void) {//my_printf( "uxSchedulerSuspended %d\n", uxSchedulerSuspended );/* 調度器處于掛起狀態 */if (uxSchedulerSuspended ! (UBaseType_t)pdFALSE) {/*** The scheduler is currently suspended - do not allow a context* switch.…

CPU 密集型 和 I/O 密集型 任務

文章目錄**CPU 密集型任務&#xff08;CPU-bound&#xff09;**定義&#xff1a;特點&#xff1a;常見場景&#xff1a;如何優化 CPU 密集型任務&#xff1a;**I/O 密集型任務&#xff08;I/O-bound&#xff09;**定義&#xff1a;特點&#xff1a;常見場景&#xff1a;如何優化…

[2025CVPR-小目標檢測方向]基于特征信息驅動位置高斯分布估計微小目標檢測模型

核心問題 ?小目標檢測性能差&#xff1a;?? 盡管通用目標檢測器&#xff08;如 Faster R-CNN, YOLO, SSD&#xff09;在常規目標上表現出色&#xff0c;但在檢測微小目標&#xff08;如 AI-TOD 基準定義的&#xff1a;非常小目標 2-8 像素&#xff0c;小目標 8-16 像素&…

三大工廠設計模式

1.簡單工廠模式1.1需求入手從需求進行入手&#xff0c;可以更深入的理解什么是設計模式。有一個制作披薩的需求&#xff1a;需要便于擴展披薩的種類&#xff0c;便于維護。1.披薩的種類有很多&#xff1a;GreekPizz&#xff0c;CheesePizz等2.披薩的制作流程&#xff1a;prepar…

SpringBoot--Mapper XML 和 Mapper 接口在不同包

&#x1f9e9; 背景說明在 Spring Boot 中&#xff0c;MyBatis 默認要求 Mapper 接口和 XML 文件位于相同包路徑。 但在實際項目中&#xff0c;為了模塊化或結構清晰&#xff0c;常將 XML 放在 resources/mybatis/... 下&#xff0c;這種做法就必須進行額外配置。&#x1f4c1;…

公交車客流人數統計管理解決方案:智能化技術與高效運營實踐

1. 引言公交車作為城市公共交通的核心組成部分&#xff0c;其客流數據的精準統計與管理直接影響運營效率、調度優化和乘客體驗。傳統的人工統計方式效率低、誤差大&#xff0c;難以滿足現代智慧交通的需求。隨著人工智能&#xff08;AI&#xff09;、物聯網&#xff08;IoT&…

正則表達式完全指南:從入門到實戰

目錄 一、什么是正則表達式&#xff1f; 二、基礎語法速查表 三、進階特性 1.分組與捕獲 2.非捕獲分組 3.前瞻與后顧 4.貪婪與懶惰匹配 四、實戰案例 案例1&#xff1a;驗證手機號 案例2&#xff1a;提取網頁中所有鏈接 案例3&#xff1a;密碼強度驗證 一、什么是正…