10.1 format()
我們經常需要在控制台(螢幕)輸出很多資料。我們並不是第一個遇到這問題的人 — 所以在 Python 中早就出現了 函數 format()
,它能讓我們更簡單、更直觀地結合字串並輸出資料。
format()
函數用於將值插入到字串的特定位置。函數的語法如下:
"從 {} 到 {} 的範本字串".format(值1, 值2,…)
事實 1: format()
函數是字串的子函數,因此它在字串上被呼叫。我們不需要將字串傳遞進函數,而是直接在字串後加上點(.),然後呼叫 format()
函數,並將參數傳遞給它。
事實 2: format()
函數使用傳入的值填充字串範本。它可以將傳入的值轉換成字串(例如,如果值是數字),並將它們插入由 {}
標記的位置。這樣的位置稱為 placeholder
。
基本用法:
welcome_message = "你好, {}, 歡迎來到 {}!"
print(welcome_message.format("安娜", "我們的商店"))
結果:
"你好, 安娜, 歡迎來到我們的商店!"
格式化數字:
output = "資料: {0:.2f} 和 {1:.2f}".format(3.1415926, 2.71828)
print(output)
結果:"資料: 3.14 和 2.72"
— 演示限制輸出到小數點後兩位數。
使用關鍵字:
output = "{name} 在 {company} 工作"
print(output.format(name="謝爾蓋", company="Google"))
結果:
"謝爾蓋 在 Google 工作"
使用 format()
改善了代碼的可讀性和可維護性,允許我們輕鬆改變格式而不需要編輯整個字串。
10.2 f-string
從 Python 3.6 版開始加入了一種新的字串類型 — f-string
,它的意思是「formatted string」。這些字串不僅可以提高代碼的可讀性,也比其他格式化方式執行得更快。
要使用 f-string
,在字串前加上字母 "f"
或 "F"
。要插入的表達式放在大括號 {}
中:
範例:
force = "黑暗面"
message = f"願原力與你同在 {force}!"
print(message) # 輸出:願原力與你同在 黑暗面!
重要! 在大括號中可以指定目前作用域內的變量(稍後會講到), Python 會自動將變量轉換為字串並插入指定位置。
範例:
age = 28
message = f"我今年 {age} 歲"
print(message) # 輸出:我今年 28 歲
更棒的是,在大括號中可以使用 包含多個變量的表達式。
範例:
birth_year = 1985
current_year = 2024
message = f"我今年 {current_year - birth_year} 歲"
print(message) # 輸出:我今年 39 歲
在底層,這些都會被轉換為調用 format()
函數,但新的方式真的更方便。
盡情使用吧。
10.3 sep
和 end
參數
在 Python 中,函數 print()
提供了兩個很有用的參數 — sep
和 end
,它們可以幫助控制輸出資料的格式。這些參數讓 print()
更加靈活,可以用於格式化輸出而不需要額外的函數或複雜的字串操作。
參數 sep
用於定義在 print()
中多個值之間使用的分隔符號,預設值是空格。這意味著,如果你傳遞多個參數給 print()
,它們會被空格分隔。
如果你想讓資料被逗號分隔,而不是空格,你需要在最後加上 參數 sep
,並將其設定為新的分隔符字串。
範例:
print("Hello", "world") # 輸出:Hello world
print("Hello", "world", sep=", ") # 輸出:Hello, world
或者,你也可以將資料的每個值輸出到新的一行。這時需要將參數 sep
設置為特殊的換行符號 — 表示為 “\n”
。
範例 | 解釋 |
---|---|
|
|
參數 end
決定所有傳遞值之後的輸出結果。預設值為換行符 (\n)
,代表在 print()
執行完後換行。
修改 end
,我們可以控制資料輸出方式,比如讓輸出保持在同一行:
範例:
print("Hello", end=" ")
print("world") # 輸出:Hello world
使用 sep
和 end
在需要特定格式的輸出場景中非常有用,比如建立表格、報表或將資料輸出為一行而不自動換行。
透過移除手動添加分隔符或控制行分隔線的需求,使用 sep
和 end
不僅讓代碼更簡潔,還提高了代碼的可讀性和可維護性。
GO TO FULL VERSION