python為什麼要字串格式化

R-B發表於2021-09-11

python為什麼要字串格式化

Python2.6 開始,新增了一種格式化字串的函式 str.format(),它增強了字串格式化的功能。相對於老版的%格式方法,它有很多優點。

1.在%方法中%s只能替代字串型別,而在format中不需要理會資料型別;

2.單個引數可以多次輸出,引數順序可以不相同;

3.填充方式十分靈活,對齊方式十分強大;

4.官方推薦用的方式,%方式將會在後面的版本被淘汰。

相關推薦:《》

使用

1、按照預設順序,不指定位置

print("{} {}".format("hello","world") )
hello world

2、設定指定位置,可以多次使用

print("{0} {1} {0}".format("hello","or"))
hello or hello

3、使用列表格式化

person = {"name":"opcai","age":20}
print("My name is {name} . I am {age} years old .".format(**person))
My name is opcai . I am 20 years old.

4、透過列表格式化

stu = ["opcai","linux","MySQL","Python"]
print("My name is {0[0]} , I love {0[1]} !".format(stu))
My name is opcai , I love linux !

數字格式化

數字                                  格式                                 輸出                                        描述

3.1415926                        {:.2f}                                 3.14                               保留小數點後兩位

3.1415926                        {:+.2f}                              +3.14                         帶符號保留小數點後兩位

-1                                      {:+.2f}                              -1.00                          帶符號保留小數點後兩位

2.71828                              {:.0f}                                   3                                       不帶小數

5                                       {:0>2d}                               05                           數字補零 (填充左邊, 寬度為2)

5                                        {:x<4d}                             5xxx                         數字補x (填充右邊, 寬度為4)

10                                       {:x<4d}                             10xx                        數字補x (填充右邊, 寬度為4)

1000000                                {:,}                               1,000,000                       以逗號分隔的數字格式

0.25                                      {:.2%}                              25.00%                              百分比格式

1000000000                          {:.2e}                            1.00e+09                             指數記法

13                                         {:10d}                               13                             右對齊 (預設, 寬度為10)

13                                         {:<10d}                             13                              左對齊 (寬度為10)

13                                         {:^10d}                             13                              中間對齊 (寬度為10)

進位制轉換

11 '{:b}'.format(11) 1011 二進位制

11 '{:d}'.format(11) 11 十進位制

11 '{:o}'.format(11) 13 八進位制

11 '{:x}'.format(11) b 十六進位制

11 '{:#x}'.format(11) 0xb 十六進位制

11 '{:#X}'.format(11) 0XB 十六進位制

^, <, > 分別是居中、左對齊、右對齊,後面頻寬度, : 號後面帶填充的字元,只能是一個字元,不指定則預設是用空格填充。

+ 表示在正數前顯示 +,負數前顯示 -; (空格)表示在正數前加空格。

b、d、o、x 分別是二進位制、十進位制、八進位制、十六進位制。

輸出大括號

print("{} {{0}}".format("opcai_linux"))
opcai_linux {0}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4560/viewspace-2836301/,如需轉載,請註明出處,否則將追究法律責任。

相關文章