一文詳解Python中的f-string超全用法
有小伙伴在看我之前寫的 Python 實(shí)用技巧文章時(shí),發(fā)現(xiàn)代碼里頻繁出現(xiàn) f'{}' 這種寫法,跑來問我這是什么 “黑科技”。其實(shí)這就是 Python 里超好用的 f-string 字符串格式化方法!今天就給大家詳細(xì)拆解 f-string 的用法,保證新手也能一看就會(huì)。
一、f-string 是什么?
f-string 是 Python 3.6 及以上版本才支持的字符串格式化新語法。它的使用門檻極低,只需要在字符串前面加一個(gè)前綴 f,再把要插入的變量或表達(dá)式放進(jìn) {} 中就行。相比傳統(tǒng)格式化方法,f-string 更快、更簡潔、可讀性更強(qiáng),還不容易出錯(cuò)。舉個(gè)簡單例子,想要控制浮點(diǎn)數(shù)的小數(shù)位數(shù),直接在 {} 里寫 {變量:格式說明符} 即可,比如 f'{num:.2f}' 就是保留兩位小數(shù)。
二、Python 三種字符串格式化方法對比
Python 里常見的字符串格式化方法有三種,我們用同一個(gè)需求來對比:輸出 【張三】今年【18】歲。
name = "張三"
age = 18
# 方法1:% 符號(hào)格式化(最古老)
print("【%s】今年【%d】歲" % (name, age)) # 輸出:【張三】今年【18】歲
# 方法2:format() 函數(shù)格式化(Python3.0 新增)
print("【{}】今年【{}】歲".format(name, age)) # 輸出:【張三】今年【18】歲
# 方法3:f-string 格式化(Python3.6 新增,強(qiáng)烈推薦)
print(f"【{name}】今年【{age}】歲") # 輸出:【張三】今年【18】歲
對比下來就能發(fā)現(xiàn),f-string 直接把變量寫在字符串里,不用額外傳參,代碼看起來更直觀。
三、f-string 超實(shí)用用法匯總
接下來給大家分享 f-string 的 10 個(gè)常見用法,每個(gè)用法都配了示例代碼,直接復(fù)制就能跑。
1. 直接計(jì)算表達(dá)式
f-string 的 {} 里不僅能放變量,還能直接寫表達(dá)式并計(jì)算結(jié)果,省去額外定義變量的步驟。
num = 15
price = 8
# 計(jì)算總價(jià)
print(f'【{num}】個(gè)橙子,每個(gè)【{price}】元,總共要花【{num * price}】元')
# 輸出:【15】個(gè)橙子,每個(gè)【8】元,總共要花【120】元
2. 快速讀取字典值
想要從字典里取值并格式化輸出,用 f-string 可以一步到位,不用寫多層索引。
student = {"name": "小明", "score": 95}
print(f'學(xué)生【{student["name"]}】的數(shù)學(xué)成績是【{student["score"]}】分')
# 輸出:學(xué)生【小明】的數(shù)學(xué)成績是【95】分
3. 輕松格式化多行字符串
如果要輸出多行內(nèi)容,用小括號(hào) () 把多個(gè) 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ù)的返回值會(huì)被自動(dòng)填充到字符串里。
# 定義一個(gè)求兩數(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. 轉(zhuǎn)義大括號(hào)和引號(hào)
如果想在字符串里顯示 {},只需要寫兩個(gè) {{}} 就行;單引號(hào)里嵌套單引號(hào),用反斜杠 \ 轉(zhuǎn)義。
# 顯示 {} 符號(hào)
print(f'f-string 使用 {{}} 來包裹變量')
# 輸出:f-string 使用 {} 來包裹變量
# 轉(zhuǎn)義單引號(hào)
print(f'他說自己真的很\'牛\'')
# 輸出:他說自己真的很'牛'
6. 格式化浮點(diǎn)數(shù)
通過 {變量:.nf} 的格式,可以輕松控制浮點(diǎn)數(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. 設(shè)置輸出寬度
用 {變量:n} 可以指定輸出內(nèi)容的寬度,n 是寬度數(shù)值,不足的部分會(huì)用空格補(bǔ)齊。
# 打印 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. 字符串對齊
通過 >、<、^ 分別可以實(shí)現(xiàn)字符串的右對齊、左對齊和居中對齊,搭配寬度數(shù)值效果更好。
s = "Python"
print(f'右對齊:{s:>10}') # 輸出:右對齊: Python
print(f'左對齊:{s:<10}') # 輸出:左對齊:Python
print(f'居中對齊:{s:^10}') # 輸出:居中對齊: Python
9. 格式化日期時(shí)間
結(jié)合 datetime 模塊,f-string 可以按照指定格式輸出日期和時(shí)間,非常方便。
import datetime
now = datetime.datetime.now()
# 格式:年-月-日 時(shí):分:秒
print(f'當(dāng)前時(shí)間:{now:%Y-%m-%d %H:%M:%S}')
# 輸出示例:當(dāng)前時(shí)間: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 編程:從入門到精通》的作者是張三
四、重要提醒
劃重點(diǎn)!劃重點(diǎn)!劃重點(diǎn)!f-string 只有在 Python 3.6 及以上版本中才能使用!如果你的 Python 版本過低,運(yùn)行代碼時(shí)會(huì)報(bào)錯(cuò),記得先升級版本哦。
到此這篇關(guān)于一文詳解Python中的f-string超全用法的文章就介紹到這了,更多相關(guān)Python f-string字符串格式化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyQt通過動(dòng)畫實(shí)現(xiàn)平滑滾動(dòng)的QScrollArea
這篇文章主要為大家詳細(xì)介紹了PyQt如何使用Qt的動(dòng)畫框架 QPropertyAnimation來實(shí)現(xiàn)平滑滾動(dòng)的QScrollArea,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以學(xué)習(xí)一下2023-01-01
python實(shí)現(xiàn)外賣信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)外賣信息管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Python異常處理之避免try-except濫用的3個(gè)核心原則
在Python開發(fā)中,異常處理是保證程序健壯性的關(guān)鍵機(jī)制,本文結(jié)合真實(shí)案例與Python核心機(jī)制,提煉出避免異常濫用的三大原則,有需要的小伙伴可以了解下2025-09-09
Python-Tkinter Text輸入內(nèi)容在界面顯示的實(shí)例
今天小編就為大家分享一篇Python-Tkinter Text輸入內(nèi)容在界面顯示的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
使用Playwright進(jìn)行移動(dòng)端模擬測試的實(shí)現(xiàn)
Playwright 移動(dòng)端模擬通過設(shè)備上下文實(shí)現(xiàn)了對屏幕、觸摸、網(wǎng)絡(luò)、地理位置的全方位模擬,結(jié)合內(nèi)置設(shè)備預(yù)設(shè)和自定義配置,可高效覆蓋從功能測試到兼容性驗(yàn)證的場景,感興趣的可以了解一下2026-01-01
python使用jieba實(shí)現(xiàn)中文分詞去停用詞方法示例
jieba分詞,完全開源,有集成的python庫,簡單易用。下面這篇文章主要給大家介紹了關(guān)于python使用jieba實(shí)現(xiàn)中文分詞去停用詞的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2018-03-03
Python requests接口測試實(shí)現(xiàn)代碼
這篇文章主要介紹了Python requests接口測試實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09

