欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?format()函數(shù)進行高級字符串格式化詳解

 更新時間:2025年05月19日 10:36:46   作者:盛夏綻放  
format()是Python中功能強大的字符串格式化工具,它提供了比傳統(tǒng)%格式化更靈活,更強大的方式來處理字符串格式化,下面我們就來全面講解一下format()函數(shù)的使用方法吧

一、format()函數(shù)基礎用法

1. 基本語法

"模板字符串".format(參數(shù)1, 參數(shù)2, ...)

2. 三種基本使用方式

(1) 位置參數(shù)

print("{}的{}成績是{}".format("張三", "數(shù)學", 95))
# 輸出: 張三的數(shù)學成績是95

(2) 索引參數(shù)

print("{0}的{2}成績是{1}".format("張三", 95, "數(shù)學"))
# 輸出: 張三的數(shù)學成績是95

(3) 命名參數(shù)

print("{name}的{subject}成績是{score}".format(
    name="李四", 
    subject="英語", 
    score=88
))
# 輸出: 李四的英語成績是88

二、數(shù)字格式化

1. 基本數(shù)字格式化語法

"{:[填充][對齊][符號][寬度][,][.精度][類型]}".format(數(shù)字)

2. 常用數(shù)字格式化示例

格式化需求格式字符串示例代碼輸出結(jié)果
保留2位小數(shù){:.2f}"{:.2f}".format(3.14159)3.14
千分位分隔{:,}"{:,}".format(1234567)1,234,567
百分比顯示{:.2%}"{:.2%}".format(0.4567)45.67%
十六進制{:x}"{:x}".format(255)ff
二進制{:b}"{:b}".format(10)1010
科學計數(shù)法{:.2e}"{:.2e}".format(123456)1.23e+05

3. 對齊與填充

格式化需求格式字符串示例代碼輸出結(jié)果
右對齊(默認){:10}"{:10}".format(123)123
左對齊{:<10}"{:<10}".format(123)123
居中對齊{:^10}"{:^10}".format(123)123
用0填充{:010}"{:010}".format(123)0000000123
用*填充{:*^10}"{:*^10}".format(123)***123****
# 綜合示例:銀行金額顯示
amount = 1234567.8912
print("賬戶余額: {:,.2f}元".format(amount))
# 輸出: 賬戶余額: 1,234,567.89元

三、字符串格式化

1. 字符串對齊與截斷

格式化需求格式字符串示例代碼輸出結(jié)果
右對齊{:>10}"{:>10}".format("hello")hello
左對齊{:<10}"{:<10}".format("hello")hello
居中對齊{:^10}"{:^10}".format("hello")hello
截斷字符串{:.3}"{:.3}".format("hello")hel

2. 填充與對齊結(jié)合

# 表格格式化示例
data = [("蘋果", 5.5, 10), ("香蕉", 3.2, 8), ("橙子", 4.8, 15)]

for item in data:
    print("{:<8} 單價: {:>5.2f}元 庫存: {:03d}".format(*item))
    
# 輸出:
# 蘋果      單價:  5.50元 庫存: 010
# 香蕉      單價:  3.20元 庫存: 008
# 橙子      單價:  4.80元 庫存: 015

四、高級格式化技巧

1. 訪問對象屬性

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("王五", 30)
print("{0.name}今年{0.age}歲".format(p))
# 輸出: 王五今年30歲

2. 訪問字典元素

data = {"name": "趙六", "score": 92}
print("學生{name}的成績是{score}".format(**data))
# 輸出: 學生趙六的成績是92

3. 訪問列表元素

items = ["手機", "電腦", "平板"]
print("產(chǎn)品1: {0[0]}, 產(chǎn)品2: {0[1]}".format(items))
# 輸出: 產(chǎn)品1: 手機, 產(chǎn)品2: 電腦

4. 動態(tài)格式化

# 根據(jù)條件動態(tài)設置格式
for num in [123, 12345, 1234567]:
    print("{:{align}{width},}".format(num, align=">", width=10))
    
# 輸出:
#        123
#     12,345
#  1,234,567

五、特殊格式化

1. 大括號轉(zhuǎn)義

# 顯示大括號本身
print("{{}}是format使用的括號".format())
# 輸出: {}是format使用的括號

2. 日期時間格式化

from datetime import datetime
now = datetime.now()
print("{:%Y-%m-%d %H:%M:%S}".format(now))
# 輸出: 2023-08-15 14:30:45 (當前時間)

3. 自定義格式化

class Temperature:
    def __init__(self, celsius):
        self.celsius = celsius
    
    def __format__(self, format_spec):
        if format_spec == "f":
            return f"{self.celsius * 9/5 + 32:.1f}°F"
        return f"{self.celsius:.1f}°C"

temp = Temperature(25)
print("溫度: {:f}".format(temp))  # 輸出: 溫度: 77.0°F
print("溫度: {}".format(temp))    # 輸出: 溫度: 25.0°C

六、性能比較

1. 各種格式化方式對比

格式化方式Python版本可讀性性能功能
%格式化所有版本一般有限
str.format()2.6+強大
f-string3.6+最好最快強大

2. 何時使用format()

? 適合場景:

  • Python 2.6到3.5版本
  • 需要復用格式模板
  • 復雜的格式化需求
  • 需要動態(tài)格式字符串

? 不適合場景:

  • Python 3.6+簡單格式化(用f-string更好)
  • 極高性能要求的場景

七、實際應用案例

案例1:生成報表

# 銷售報表生成
sales_data = [
    ("筆記本電腦", 12, 5999.99),
    ("智能手機", 25, 3999.50),
    ("平板電腦", 8, 2999.00)
]

# 表頭
print("{:<15} {:>10} {:>15} {:>15}".format(
    "產(chǎn)品名稱", "銷售數(shù)量", "單價", "總金額"))
print("-" * 60)

# 表格內(nèi)容
for product, quantity, price in sales_data:
    total = quantity * price
    print("{:<15} {:>10d} {:>15,.2f} {:>15,.2f}".format(
        product, quantity, price, total))

# 輸出示例:
# 產(chǎn)品名稱           銷售數(shù)量            單價          總金額
# ------------------------------------------------------------
# 筆記本電腦             12        5,999.99       71,999.88
# 智能手機               25        3,999.50       99,987.50
# 平板電腦                8        2,999.00       23,992.00

案例2:日志格式化

def log_message(level, message):
    timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    print("[{:<5}] {:<20} {}".format(level, timestamp, message))

log_message("INFO", "系統(tǒng)啟動完成")
log_message("ERROR", "文件打開失敗")

# 輸出示例:
# [INFO ] 2023-08-15 14:45:30 系統(tǒng)啟動完成
# [ERROR] 2023-08-15 14:46:12 文件打開失敗

八、總結(jié)

format()函數(shù)核心要點:

1.基本用法:位置參數(shù){}、索引參數(shù){0}、命名參數(shù){name}

2.數(shù)字格式化:

  • 精度控制:{:.2f}
  • 千分位:{:,}
  • 對齊填充:{:0>10}

3.字符串格式化:對齊{:<10}、截斷{:.5}

4.高級特性:

  • 訪問對象屬性{obj.attr}
  • 動態(tài)格式{:{width}}
  • 自定義__format__方法

5.特殊格式:日期時間、大括號轉(zhuǎn)義

format()提供了Python中最強大、最靈活的字符串格式化能力,特別適合需要復雜格式控制的場景。雖然Python 3.6+引入了更簡潔的f-string,但在需要復用格式模板或兼容舊版本Python時,format()仍然是不可或缺的工具。

以上就是Python format()函數(shù)進行高級字符串格式化詳解的詳細內(nèi)容,更多關(guān)于Python format字符串格式化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論