一文詳解Python中的f-string超全用法
有小伙伴在看我之前寫的 Python 實用技巧文章時,發(fā)現(xiàn)代碼里頻繁出現(xiàn) f'{}' 這種寫法,跑來問我這是什么 “黑科技”。其實這就是 Python 里超好用的 f-string 字符串格式化方法!今天就給大家詳細拆解 f-string 的用法,保證新手也能一看就會。
一、f-string 是什么?
f-string 是 Python 3.6 及以上版本才支持的字符串格式化新語法。它的使用門檻極低,只需要在字符串前面加一個前綴 f,再把要插入的變量或表達式放進 {} 中就行。相比傳統(tǒng)格式化方法,f-string 更快、更簡潔、可讀性更強,還不容易出錯。舉個簡單例子,想要控制浮點數(shù)的小數(shù)位數(shù),直接在 {} 里寫 {變量:格式說明符} 即可,比如 f'{num:.2f}' 就是保留兩位小數(shù)。
二、Python 三種字符串格式化方法對比
Python 里常見的字符串格式化方法有三種,我們用同一個需求來對比:輸出 【張三】今年【18】歲。
name = "張三"
age = 18
# 方法1:% 符號格式化(最古老)
print("【%s】今年【%d】歲" % (name, age)) # 輸出:【張三】今年【18】歲
# 方法2:format() 函數(shù)格式化(Python3.0 新增)
print("【{}】今年【{}】歲".format(name, age)) # 輸出:【張三】今年【18】歲
# 方法3:f-string 格式化(Python3.6 新增,強烈推薦)
print(f"【{name}】今年【{age}】歲") # 輸出:【張三】今年【18】歲
對比下來就能發(fā)現(xiàn),f-string 直接把變量寫在字符串里,不用額外傳參,代碼看起來更直觀。
三、f-string 超實用用法匯總
接下來給大家分享 f-string 的 10 個常見用法,每個用法都配了示例代碼,直接復制就能跑。
1. 直接計算表達式
f-string 的 {} 里不僅能放變量,還能直接寫表達式并計算結果,省去額外定義變量的步驟。
num = 15
price = 8
# 計算總價
print(f'【{num}】個橙子,每個【{price}】元,總共要花【{num * price}】元')
# 輸出:【15】個橙子,每個【8】元,總共要花【120】元
2. 快速讀取字典值
想要從字典里取值并格式化輸出,用 f-string 可以一步到位,不用寫多層索引。
student = {"name": "小明", "score": 95}
print(f'學生【{student["name"]}】的數(shù)學成績是【{student["score"]}】分')
# 輸出:學生【小明】的數(shù)學成績是【95】分
3. 輕松格式化多行字符串
如果要輸出多行內(nèi)容,用小括號 () 把多個 f-string 包起來就行,不用寫一堆換行符拼接。
name = "小紅"
age = 22
hobby = "畫畫"
msg = (
f'姓名:{name}\n'
f'年齡:{age}\n'
f'愛好:{hobby}'
)
print(msg)
# 輸出:
# 姓名:小紅
# 年齡:22
# 愛好:畫畫
4. 直接調(diào)用函數(shù)
f-string 的 {} 里還能直接調(diào)用函數(shù),函數(shù)的返回值會被自動填充到字符串里。
# 定義一個求兩數(shù)之和的函數(shù)
def my_sum(x, y):
return x + y
a = 10
b = 20
print(f'【{a}】和【】的和是【{my_sum(a, b)}】')
# 輸出:【10】和【20】的和是【30】
5. 轉義大括號和引號
如果想在字符串里顯示 {},只需要寫兩個 {{}} 就行;單引號里嵌套單引號,用反斜杠 \ 轉義。
# 顯示 {} 符號
print(f'f-string 使用 {{}} 來包裹變量')
# 輸出:f-string 使用 {} 來包裹變量
# 轉義單引號
print(f'他說自己真的很\'牛\'')
# 輸出:他說自己真的很'牛'
6. 格式化浮點數(shù)
通過 {變量:.nf} 的格式,可以輕松控制浮點數(shù)的小數(shù)位數(shù),n 就是要保留的位數(shù)。
pi = 3.1415926
print(f'保留兩位小數(shù):{pi:.2f}') # 輸出:保留兩位小數(shù):3.14
print(f'保留四位小數(shù):{pi:.4f}') # 輸出:保留四位小數(shù):3.1416
7. 設置輸出寬度
用 {變量:n} 可以指定輸出內(nèi)容的寬度,n 是寬度數(shù)值,不足的部分會用空格補齊。
# 打印 1-5 的平方和立方,指定寬度讓排版更整齊
for i in range(1, 6):
print(f'{i:2} {i*i:3} {i*i*i:4}')
# 輸出:
# 1 1 1
# 2 4 8
# 3 9 27
# 4 16 64
# 5 25 125
8. 字符串對齊
通過 >、<、^ 分別可以實現(xiàn)字符串的右對齊、左對齊和居中對齊,搭配寬度數(shù)值效果更好。
s = "Python"
print(f'右對齊:{s:>10}') # 輸出:右對齊: Python
print(f'左對齊:{s:<10}') # 輸出:左對齊:Python
print(f'居中對齊:{s:^10}') # 輸出:居中對齊: Python
9. 格式化日期時間
結合 datetime 模塊,f-string 可以按照指定格式輸出日期和時間,非常方便。
import datetime
now = datetime.datetime.now()
# 格式:年-月-日 時:分:秒
print(f'當前時間:{now:%Y-%m-%d %H:%M:%S}')
# 輸出示例:當前時間:2025-08-20 15:30:00
10. 格式化自定義對象
想要用 f-string 輸出自定義類的對象,需要在類里定義 __str__() 或 __repr__() 方法。
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
def __repr__(self):
return f"《{self.title}》的作者是{self.author}"
book = Book("Python 編程:從入門到精通", "張三")
print(f'{book}')
# 輸出:《Python 編程:從入門到精通》的作者是張三
四、重要提醒
劃重點!劃重點!劃重點!f-string 只有在 Python 3.6 及以上版本中才能使用!如果你的 Python 版本過低,運行代碼時會報錯,記得先升級版本哦。
到此這篇關于一文詳解Python中的f-string超全用法的文章就介紹到這了,更多相關Python f-string字符串格式化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python發(fā)送form-data請求及拼接form-data內(nèi)容的方法
這篇文章主要介紹了Python發(fā)送form-data請求及拼接form-data內(nèi)容的方法,文中采用的是requests的方式發(fā)送multipart/form-data請求,需要的朋友可以參考下2016-03-03
python 實現(xiàn)12bit灰度圖像映射到8bit顯示的方法
這篇文章主要介紹了python 實現(xiàn)12bit灰度圖像映射到8bit顯示的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
使用PyInstaller將python轉成可執(zhí)行文件exe筆記
這篇文章主要介紹了使用PyInstaller將python轉成可執(zhí)行文件exe筆記,需要的朋友可以參考下2018-05-05

