一文詳解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 更快、更簡(jiǎn)潔、可讀性更強(qiáng),還不容易出錯(cuò)。舉個(gè)簡(jiǎn)單例子,想要控制浮點(diǎn)數(shù)的小數(shù)位數(shù),直接在 {} 里寫 {變量:格式說明符} 即可,比如 f'{num:.2f}' 就是保留兩位小數(shù)。
二、Python 三種字符串格式化方法對(duì)比
Python 里常見的字符串格式化方法有三種,我們用同一個(gè)需求來對(duì)比:輸出 【張三】今年【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】歲
對(duì)比下來就能發(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é)成績(jī)是【{student["score"]}】分')
# 輸出:學(xué)生【小明】的數(shù)學(xué)成績(jī)是【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. 字符串對(duì)齊
通過 >、<、^ 分別可以實(shí)現(xiàn)字符串的右對(duì)齊、左對(duì)齊和居中對(duì)齊,搭配寬度數(shù)值效果更好。
s = "Python"
print(f'右對(duì)齊:{s:>10}') # 輸出:右對(duì)齊: Python
print(f'左對(duì)齊:{s:<10}') # 輸出:左對(duì)齊:Python
print(f'居中對(duì)齊:{s:^10}') # 輸出:居中對(duì)齊: 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. 格式化自定義對(duì)象
想要用 f-string 輸出自定義類的對(duì)象,需要在類里定義 __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ò),記得先升級(jí)版本哦。
到此這篇關(guān)于一文詳解Python中的f-string超全用法的文章就介紹到這了,更多相關(guān)Python f-string字符串格式化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python發(fā)送form-data請(qǐng)求及拼接form-data內(nèi)容的方法
這篇文章主要介紹了Python發(fā)送form-data請(qǐng)求及拼接form-data內(nèi)容的方法,文中采用的是requests的方式發(fā)送multipart/form-data請(qǐng)求,需要的朋友可以參考下2016-03-03
python 實(shí)現(xiàn)12bit灰度圖像映射到8bit顯示的方法
這篇文章主要介紹了python 實(shí)現(xiàn)12bit灰度圖像映射到8bit顯示的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python psutil監(jiān)控進(jìn)程實(shí)例
今天小編就為大家分享一篇python psutil監(jiān)控進(jìn)程實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12
使用PyInstaller將python轉(zhuǎn)成可執(zhí)行文件exe筆記
這篇文章主要介紹了使用PyInstaller將python轉(zhuǎn)成可執(zhí)行文件exe筆記,需要的朋友可以參考下2018-05-05
Python利用folium實(shí)現(xiàn)地圖可視化
Folium是建立在Python生態(tài)系統(tǒng)的數(shù)據(jù)整理(Datawrangling)能力和Leaflet.js庫的映射能力之上的開源庫。這篇文章主要給大家介紹了關(guān)于如何Python利用folium實(shí)現(xiàn)地圖可視化的相關(guān)資料,需要的朋友可以參考下2021-05-05

