python str.format高階用法

赵青青發表於2024-03-31

在 Python 2 中,str.format() 函式可以使用一些高階的格式化選項,下面是一些常用的高階用法:

1. 格式化數字

可以使用格式化選項來控制數字的顯示方式,例如:

# 將數字格式化為帶千位分隔符的字串
n = 1234567
s = "{:,}".format(n)
print(s)  # 輸出:1,234,567

# 將數字格式化為指定位數的字串,不足位數用0填充
n = 42
s = "{:0>4}".format(n)
print(s)  # 輸出:0042

2. 格式化日期和時間

可以使用格式化選項來控制日期和時間的顯示方式,例如:

import datetime

# 將日期格式化為指定格式的字串
d = datetime.date(2022, 1, 1)
s = "{:%Y-%m-%d}".format(d)
print(s)  # 輸出:2022-01-01

# 將時間格式化為指定格式的字串
t = datetime.time(12, 34, 56)
s = "{:%H:%M:%S}".format(t)
print(s)  # 輸出:12:34:56

# 將日期時間格式化為指定格式的字串
dt = datetime.datetime(2022, 1, 1, 12, 34, 56)
s = "{:%Y-%m-%d %H:%M:%S}".format(dt)
print(s)  # 輸出:2022-01-01 12:34:56

3. 格式化物件

可以使用格式化選項來控制物件的顯示方式,例如:

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

# 將物件格式化為指定格式的字串
p = Person("Alice", 18)
s = "{0.name} is {0.age} years old".format(p)
print(s)  # 輸出:Alice is 18 years old

4. 格式化字典

可以使用格式化選項來控制字典的顯示方式,例如:

# 將字典格式化為指定格式的字串
d = {"name": "Alice", "age": 18}
s = "My name is {name}, and I am {age} years old".format(**d)
print(s)  # 輸出:My name is Alice, and I am 18 years old

這些高階用法可以讓 str.format() 函式更加靈活和強大。

相關文章