1. 程式人生 > 其它 >python 字串格式化(.format,f-string)

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是最終返回字串的長度。還可以增加一個正負號標記。在這種情況下,用+則無論數值為正負數都將顯示相應正負號。用-則只有當數值為負數時才顯示負號,預設設定也是如此。