python 字串格式化(.format,f-string)
字串型別格式化採用format()方法,基本使用格式是:
<模板字串>.format(<逗號分隔的引數>)
2. 1 格式控制資訊
format()方法中<模板字串>的槽除了包括引數序號,還可以包括格式控制資訊。此時,槽的內部樣式如下:
{<引數序號>: <格式控制標記>} # 中間使用了一個冒號哦!
其中,<格式控制標記>用來控制引數顯示時的格式,包括:<填充><對齊><寬度><,><.精度><型別>6 個欄位,這些欄位都是可選的,可以組合使用
1)<填充>
指<寬度>內除了引數外的字符采用什麼方式表示,預設採用空格,可以通過<填充>更換。
(2)<對齊>
指引數在<寬度>內輸出時的對齊方式,分別使用<、>和^三個符號表示左對齊、右對齊和居中對齊。
(3)<寬度>
指當前槽的設定輸出字元寬度,如果該槽對應的format()引數長度比<寬度>設定值大,則使用引數實際長度。如果該值的實際位數小於指定寬度,則位數將被預設以空格字元補充。
(4)逗號(,)
<格式控制標記>中逗號(,)用於顯示數字的千位分隔符,例如:
(5)<.精度> # 注意:前面有一個小數點哦!
表示兩個含義,由小數點(.)開頭。對於浮點數,精度表示小數部分輸出的有效位數。對於字串,精度表示輸出的最大長度。
(6)<型別>
表示輸出整數和浮點數型別的格式規則。對於整數型別,輸出格式包括6 種:
b: 輸出整數的二進位制方式;
c: 輸出整數對應的 Unicode 字元;
d: 輸出整數的十進位制方式;
o: 輸出整數的八進位制方式;
x: 輸出整數的小寫十六進位制方式;
X: 輸出整數的大寫十六進位制方式;
對於浮點數型別,輸出格式包括4 種:
e: 輸出浮點數對應的小寫字母 e 的指數形式;
E: 輸出浮點數對應的大寫字母 E 的指數形式;
f: 輸出浮點數的標準浮點形式;
%: 輸出浮點數的百分形式。
浮點數輸出時儘量使用<.精度>表示小數部分的寬度,有助於更好控制輸出格式。
f-string,亦稱為格式化字串常量(formatted string literals),是Python3.6新引入的一種字串格式化方法,該方法源於PEP 498 – Literal String Interpolation,主要目的是使格式化字串的操作更加簡便。f-string在形式上是以 f 或 F 修飾符引領的字串(f'xxx'或 F'xxx'),以大括號 {} 標明被替換的欄位;f-string在本質上並不是字串常量,而是一個在執行時運算求值的表示式
f-string在功能方面不遜於傳統的%-formatting語句和str.format()
函式,同時效能又優於二者,且使用起來也更加簡潔明瞭,因此對於Python3.6及以後的版本,推薦使用f-string進行字串格式化。
1、f-string用大括號 {}
表示被替換欄位,其中直接填入替換內容:
2、如何格式化一個表示式
3、如何用f-string設定浮點數精度
F-string可以像str.format那樣格式化浮點數。想要實現這一點,你需要加一個 :(冒號)再加一個 .(英文句號)然後跟著小數點位數最後以f結尾。
4、如何將一個數字格式化為百分數
5、如何調整或者增加 f-string 的縮排
你可以便捷的通過 < 或者 > 還有 ^ 符號來調整字串縮排。
6、如何格式化千分位
甚至可以一次性同時搞定既有千分位分隔符又有精度設定的浮點數。
7、如何在字串前補零
可以用{expr:0len} 這個方法來進行字串補零。len是最終返回字串的長度。還可以增加一個正負號標記。在這種情況下,用+則無論數值為正負數都將顯示相應正負號。用-則只有當數值為負數時才顯示負號,預設設定也是如此。