Python程式設計基礎:f-字串格式

阳光天气發表於2024-06-18

本文探討使用Python f-字串格式,也稱為“格式化字串文字”。f-string是格式化字串的一種很好且簡單的方法,適用於Python v3.6+。如果你仍然使用.format()方法,必須瞭解f-字串。
使用字串格式的優勢之一是能夠“插入”並格式化字串資料中的變數。
Python字串format()方法 VS. F-字串
字串格式的舊方法是使用.format()方法。如下所示,可以將變數插入到字串型別資料中:
花括號用作變數的佔位符。
這些花括號內的名稱(例如“a”、“b”)可以是任何內容,它們不一定是a和b,將它們更改為x和y也會起作用。它們的作用類似於關鍵字引數,因此可以選擇將變數插入字串的位置。

點選檢視程式碼
num='10'
var='apples'
s='I have {a} {b}'.format(a=num,b=var)
print(s)
I have 10 apples

隨著Python v3.6的釋出,f-字串變得可用。這種新方法比舊的format()方法更強大、更直觀。為了使用f字串,需要:
1.使用f開始字串資料,後跟實際字串。
2.與舊的.format()方法類似,使用花括號{}作為變數的佔位符。
3.可以直接在花括號中插入變數。

點選檢視程式碼
s=f'I have {num} {var}'
print(s)
I have 10 apples

數字格式
可以使用f-字串來操作不同的數字格式,例如控制小數位數、百分比、千位分隔符等。
有時,我們可能需要格式化一個數字,比如保留兩位小數:

點選檢視程式碼
pi=3.1415926
s=f'the value of pi is {pi:.2f}'
print(s)

the value of pi is 3.14

也可以將數字格式化為百分比,而不需要先將小數乘以100。

點選檢視程式碼
a=0.1234567
s=f'the percentage is {a:.3%}'
print(s)

the percentage is 12.346% 此外,還可以為數字格式資料包含千位分隔符。注意,不侷限於逗號符號--除了額數符號之外,任何東西都可以使用。
點選檢視程式碼
this_num=69420
print(f'this number is {this_num:,}')
print(f'this number is {this_num:_}')

this number is 69,420
this number is 69,420

可以同時使用千位分隔符和小數點。

print(f"this number is {this_num:,.4f}")

要用科學計數法格式化數字,只需要再字串格式中新增:e(或:E)。要控制小數位,只需要在e或E前面加一個點和一個數字。

點選檢視程式碼
num=1234567890
print(f'{num:e}')
print(f'{num:E}')
print(f'{num:.2e}')

1.234568e+09
1.234568E+09
1.23e+09

格式化datetime物件的字串表示也很容易。

點選檢視程式碼
import datetime as dt
today=dt.datetime.today()
print(today)
2024-06-18 16:40:51.463672

print(f'today is {today:%Y/%m/%d}')
today is 2024/06/18
將Python f-字串與原始字串(r字串)組合
還可以組合f-字串和r-字串。這項計數對於引用計算機上的檔案非常有用。
例如,可以將檔案路徑分解為不同的部分,並使用變數表示路徑:

點選檢視程式碼
parent_dir=rf'D:/完美Excel/Python'
subfolder='MyFiles'
file_path='file01.xlsx'
print(rf'{parent_dir}/{subfolder}/{file_path}')
D:/完美Excel/Python/MyFiles/file01.xlsx

文字對齊
可以透過在字串資料的兩側插入空格來對齊文字
1.要在字串左側插入空格,使用:>n
2.要在字串右側插入空格,使用:<n
3.右側插入的另一種可能方式是:n
4.對於中間對齊,使用:^n
空格的數量將取決於選擇的n值和字串的長度。如果n小於字串的長度,則此格式將無效。

點選檢視程式碼
txt='python'
print(f'{txt:>10}')
print(f'{txt:<10}')
print(f'{txt:10}')
print(f'{txt:^10}')
結果:
點選檢視程式碼
    python
python    
python    
  python  
使用f-字串除錯python程式碼 如果列印用於除錯的程式碼,f-字串也可以透過減少我們需要鍵入的程式碼來幫助你
點選檢視程式碼
x=100
print(f'{x=}')

x=100

在python f-字串裡使用條件
還可以在f-字串插入簡單的if/else條件。考慮下面的示例:

點選檢視程式碼
pass_mark=50
mark_1=60
mark_2=49
print(f"student 1{' pass' if mark_1>pass_mark else ' fail'}")
print(f"student 2{' pass' if mark_2>pass_mark else ' fail'}")
結果
點選檢視程式碼
student 1 pass
student 2 fail

在f字串裡使用引號
如前一個示例所示,可以在f-字串中使用引號。唯一的規則是匹配相同型別的開始和結束引號,
即單個開始引號需要有一個匹配的結束引號。與雙引號相同,這也意味著我們不能在同一個f-字串中使用引號兩次。
print(f"same quotes won't work:{["item"]}")
結果
SyntaxError: f-string: unmatched '['

計算 &函式/方法
如果將函式放入f-字串中,則會對其進行求值,這意味著可以使用f-字串直接顯示函式結果。
將其與之前的除錯技術相結合

點選檢視程式碼
def add_two(x):
    return x+2
print(f'{add_two(1)=}')

add_two(1)=3

多行f字串
如果字串太長,可以使用三個引號""""""而不是單引號將其分成多行。

點選檢視程式碼
txt='this works'
print(f"""this is a long sentence 
           with multiple lines.We
           are using three quotes
        and {txt}""")
結果:
點選檢視程式碼
this is a long sentence
           with multiple lines.We
           are using three quotes
        and this works

相關文章