在 Python 裡面,可以使用 f-string 的技巧來使用格式化字串,例如:
>>> a = 123
>>> print(f"變數 a 的內容為 {a}")
變數 a 的內容為 123
在字串的雙引號 "
前面加上 f
,並在字串裡面用大括號來把要輸出的變數給夾起來,這樣就能在字串裡面放入變數。這樣就能在一個字串裡面,方便的表示多個變數:
>>> name = "Penut Chen"
>>> score = 94.87
>>> print(name, "的數學拿到", score, "分") # 原本需要這樣表示
>>> print(f"{name} 的數學拿到 {score} 分") # 現在可以這樣表示
Penut Chen 的數學拿到 94.87 分
Penut Chen 的數學拿到 94.87 分
可以在變數後面加上 :3d
來進行三位數的對齊:
>>> arr = [1, 23, 456]
>>> for i, a in enumerate(arr):
>>> print(f"arr[{i}] = {a:3d}")
arr[0] = 1
arr[1] = 23
arr[2] = 456
d
代表十進位 Decimal 的意思,這樣就會用至少三個字元的長度來輸出整數,不足三位數的,則會在前面補上空格。如果想要補零而不是補空格的話,可以改成 :03d
之類的:
>>> for i, a in enumerate(arr):
>>> print(f"arr[{i}] = {a:03d}")
arr[0] = 001
arr[1] = 023
arr[2] = 456
如果是浮點數的話,則可以用 :.3f
來指定小數點後的位數:
>>> pi = 3.1415926
>>> print(f"圓周率是 {pi:.3f}")
3.142
f
就是浮點數 Float 的意思,:.3f
會顯示到小數點下第三位,但是要特別注意,這樣的做法會對最後一位進行四捨五入,所以變成 3.142。
字串的對齊可以使用 :3s
,但預設是靠左對齊:
>>> arr = ["a", "ab", "abc"]
>>> for i, a in enumerate(arr):
>>> print(f"arr[{i}] = [{a:3s}]")
arr[0] = [a ]
arr[1] = [ab ]
arr[2] = [abc]
可以在冒號後面加上 >
來靠右對齊:
>>> for i, a in enumerate(arr):
>>> print(f"arr[{i}] = [{a:>3s}]")
arr[0] = [ a]
arr[1] = [ ab]
arr[2] = [abc]
甚至可以用 ^
來置中對齊:
>>> arr = ["a", "abc", "abcde"]
>>> for i, a in enumerate(arr):
>>> print(f"arr[{i}] = [{a:^5s}]")
arr[0] = [ a ]
arr[1] = [ abc ]
arr[2] = [abcde]
熟悉這些格式化字串的操作,對各種開發情境的處理都有所幫助。