print("%s %s %s %.2f" % (x, y, z, bmi))
print(f"x: {x}, y: {y}, z: {z}, bmi: {bmi}")
x, y, z, bmi = "adam", 176, 60, 23.34
print(f"{x} {y} {z} {bmi}")
% 的格式化方式是 舊式(old-style) 的字串格式化方法,在 Python 中還是能用,但 現在推薦使用的是 f-string(格式化字串常值),它在 Python 3.6 以後才出現,語法更清楚、效率更高。
name = "Ada"
age = 20
print("Name: %s, Age: %d" % (name, age))
• %s:字串
• %d:整數
• %f:浮點數(可用 %.2f 指定小數位數)
前後的型別必需一致,不然一定會報錯
name = "Ada"
age = 20
print(f"Name: {name}, Age: {age}")
這個方式不需要記格式符號,只要用 {變數} 包起來即可,也可以在裡面直接做計算:
height = 1.70
weight = 60
bmi = weight / height**2
print(f"BMI is {bmi:.2f}")
優點:比 % 清晰、支援索引與命名
缺點:格式較冗長
print("Name: {}, Age: {}, BMI: {:.2f}".format(name, age, bmi))
print("Name: {n}, Age: {a}".format(n=name, a=age))
print(f"Name: {name}, Age: {age}, BMI: {bmi:.2f}")
• 速度快
• 可讀性高
• 可以直接寫變數或運算式 {} 裡面
在 {bmi:.2f} 裡的 f,代表的是 格式代碼(format code),而 f 是用來格式化 浮點數 的一種。其實除了 f 以外,還有很多其他的格式代碼可以搭配 f-string 或 .format() 使用,這裡幫你整理出常見的:
格式碼 用途 範例輸出 (bmi = 21.456)
f 固定小數位浮點數 21.46 ({bmi:.2f})
e 科學記號(小寫 e) 2.15e+01({bmi:.2e})
E 科學記號(大寫 E) 2.15E+01
g 自動 f 或 e 格式(更簡潔)21.456 或 2.15e+01
d 整數(十進位) {age:d} = 20(只能整數)
x 整數轉小寫十六進位 {255:x} = ff
X 整數轉大寫十六進位 {255:X} = FF
% 轉百分比(乘 100 加 %) {0.2345:.2%} = 23.45%
數字格式可加千分位 ,:
num = 1234567.89
print(f"{num:,.2f}") # 👉 1,234,567.89
✅ 補充:靠齊與寬度設定
:<10 靠左對齊,寬度 10
:>10 靠右對齊,寬度 10
:^10 置中對齊,寬度 10
:0>5d 前補 0 到長度 5
n = 42
print(f"{n:>5}") # ' 42'
print(f"{n:0>5}") # '00042'
print(f"{n:^7}") # ' 42 '