Python中f-string格式化 Python3.6+新特性f-string字符串格式化

f-Stringpython 3.6及以上版本中推薦的字符串格式化方式,其語法簡潔且執(zhí)行效率高。1. 使用方法是在字符串前加f或f,并用大括號(hào)嵌入變量或表達(dá)式;2. 支持類似.format()的格式規(guī)范迷你語言,可控制對(duì)齊、精度和進(jìn)制轉(zhuǎn)換;3. 可使用三引號(hào)實(shí)現(xiàn)多行字符串拼接,便于構(gòu)造結(jié)構(gòu)化文本;4. 注意事項(xiàng)包括僅適用于python 3.6+、避免復(fù)雜表達(dá)式影響可讀性以及需謹(jǐn)慎處理語法錯(cuò)誤。掌握f-string能顯著提升python代碼的優(yōu)雅度與效率。

在Python 3.6及以上版本中,f-string(格式化字符串字面量)的引入極大簡化了字符串格式化的操作。相比傳統(tǒng)的%格式化和.format()方法,f-string不僅寫法更簡潔,執(zhí)行效率也更高,是現(xiàn)代Python開發(fā)中推薦使用的字符串格式化方式。


基本用法:變量直接嵌入字符串

使用f-string非常簡單,只需在字符串前加一個(gè)f或F,然后在大括號(hào) {} 中放入變量或表達(dá)式即可:

name = "Alice" age = 25 print(f"My name is {name} and I am {age} years old.")

輸出結(jié)果:

My name is Alice and I am 25 years old.

你甚至可以直接在里面寫表達(dá)式,比如計(jì)算、調(diào)用函數(shù)等:

立即學(xué)習(xí)Python免費(fèi)學(xué)習(xí)筆記(深入)”;

x = 5 y = 10 print(f"The sum of x and y is {x + y}.")

格式化控制:對(duì)齊、精度、進(jìn)制轉(zhuǎn)換等

f-string支持類似.format()的格式規(guī)范迷你語言,可以在大括號(hào)內(nèi)使用冒號(hào) : 后跟格式說明符來控制輸出樣式。

數(shù)值格式示例:

value = 3.1415926 print(f"Pi is approximately {value:.2f}")  # 保留兩位小數(shù)

輸出:

Pi is approximately 3.14

對(duì)齊與填充:

name = "Bob" print(f"{name:>10}")  # 右對(duì)齊,總寬度為10

輸出:

       Bob

進(jìn)制轉(zhuǎn)換:

num = 255 print(f"Hex: {num:x}")    # 十六進(jìn)制 print(f"Binary: {num:b}") # 二進(jìn)制

輸出:

Hex: ff Binary: 11111111

常見格式選項(xiàng)包括:

  • .nf:保留n位小數(shù)
  • :b, :x, :o:分別表示二進(jìn)制、十六進(jìn)制、八進(jìn)制
  • :n, :^n:左對(duì)齊、右對(duì)齊、居中,n為總寬度

多行f-string:處理復(fù)雜結(jié)構(gòu)更方便

如果你需要拼接多行字符串,可以用三引號(hào)配合f-string:

name = "Charlie" score = 89.5 subject = "Math"  info = f""" Name: {name} Subject: {subject} Score: {score:.1f} """  print(info)

這樣可以輕松構(gòu)造出格式清晰的文本塊,特別適合生成報(bào)告或日志內(nèi)容。


注意事項(xiàng):兼容性和可讀性

雖然f-string很強(qiáng)大,但也要注意幾點(diǎn):

  • 只適用于Python 3.6+,如果項(xiàng)目需要兼容舊版本,不能使用。

  • 避免過于復(fù)雜的表達(dá)式,否則會(huì)影響代碼可讀性。例如:

    print(f"Result: {(lambda x: x**2 + 2*x + 1)(3)}")  # 雖然能運(yùn)行,但不易理解
  • 調(diào)試時(shí)小心語法錯(cuò)誤,比如忘記閉合括號(hào)或引號(hào),容易導(dǎo)致報(bào)錯(cuò)信息不直觀。


總的來說,f-string是一種簡潔又強(qiáng)大的字符串格式化方式,掌握它能讓Python代碼更加優(yōu)雅和高效。基本上就這些,日常使用已經(jīng)足夠應(yīng)對(duì)大多數(shù)場(chǎng)景了。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享