Python3之字符串格式化淺談

日期:2019年11月11日
作者:Commas
註釋:學習就是爲了忘記,那就總結一下字符串格式化吧…

如果您想了解更多有關Python的知識,那麼請點【我】
《我的Python淺談系列目錄》



一、字符串格式化

定義:將字符串特定的地方,替換自己想要的字符串;
例如:將字符串“我愛?”中的“?”替換成“CSDN”,即得到新字符串“我愛CSDN”,這個過程就是字符串格式化。

序號 “方法” 代表 備註
1 格式化操作符 %
2 格式化函數 str.format() 推薦使用

二、格式化操作符%

序號 格式化字符串 全稱 含義
1 %s string 字符串
2 %d decimal 十進位的整數
3 %f float 浮點數
4 %% % 輸出%

1、%s的示例

#(1)一個格式化字符串
str_ini = "%s,I'm Commas"
str_formart = str_ini % ("Hello",)
# str_formart = str_ini % "Hello"
print(str_formart)
#控制檯輸出:Hello,I'm Commas
#-----------------------------------------------
#(2)兩個或兩個以上格式化字符串
str_ini = "SELECT * FROM %s WHERE name = %s"
str_formart = str_ini % ("Student", "Commas")
print(str_formart)
#控制檯輸出:SELECT * FROM Student WHERE name = Commas

2、%d的示例

#(1)%d:表示一個十進制的整數
str_ini = "你%d塊都不給我!"
str_formart = str_ini % (100.01,)
print(str_formart)
#控制檯輸出:你100塊都不給我!
#-----------------------------------------------
#(2)%06d:表示一個“6位數字”,不足的地方用0補齊
str_ini = "我的學號是%06d"
str_formart = str_ini % (1,)
print(str_formart)
#控制檯輸出:我的學號是000001

3、%f的示例

#(1)%f:顯示完整的浮點數
str_ini = "PI的值是約等於%f"
str_formart = str_ini % (3.1415962,)
print(str_formart)
#控制檯輸出:PI的值是約等於3.141596
#-----------------------------------------------
#(2)%.2f:顯示小數位數爲2的浮點數
str_ini = "PI的值是約等於%.2f"
str_formart = str_ini % (3.1415962,)
print(str_formart)
#控制檯輸出:PI的值是約等於3.14

4、%%的示例

str_ini = "BUG的發生率竟然是 %.2f %%,一個BUG改一天"
str_formart = str_ini % (100,)
print(str_formart)
#控制檯輸出:BUG的發生率竟然是 100.00 %,一個BUG改一天

三、格式化函數str.format()

1、按默認順序格式化

# (1){}表示數據不做任何處理
str_ini = "SELECT * FROM {} WHERE name = {}"
str_formart = str_ini.format("Student", "Commas")
print(str_formart)
#控制檯輸出:SELECT * FROM Student WHERE name = Commas
#-------------------------------------------
# (2){:.2f}表示保留兩位小數
str_ini = "PI的值是約等於{:.2f}"
str_formart = str_ini.format(3.1415926)
print(str_formart)
#控制檯輸出:PI的值是約等於3.14

2、按指定位置格式化

str_ini = "SELECT * FROM {1} WHERE name = {0}"
str_formart = str_ini.format("Commas", "Student")
print(str_formart)
#控制檯輸出:SELECT * FROM Student WHERE name = Commas

3、使用字典(Dictionary)格式化

dic_info = {"table": "Student", "name": "Commas"}
str_ini = "SELECT * FROM {table} WHERE name = {name}"
str_formart = str_ini.format(**dic_info)
print(str_formart)
#控制檯輸出:SELECT * FROM Student WHERE name = Commas

4、使用列表(List)格式化

list_info = [99.99, 2]
str_ini = "白菜特價:{0[0]}元{0[1]}斤"
str_formart = str_ini.format(list_info)
print(str_formart)
#控制檯輸出:白菜特價:99.99元2斤

5、使用元組(Tuple)格式化

Tuple_info = (99.99, 2)
str_ini = "白菜特價:{0[0]}元{0[1]}斤"
str_formart = str_ini.format(Tuple_info)
print(str_formart)
#控制檯輸出:白菜特價:99.99元2斤

格式化函數str.format()中的格式速查表:

格式 輸入 輸出 描述
{:.2f} 3.1415 3.14 保留兩位小數
{:+.2f} +3.1415 +3.14 帶符號保留兩位小數
{:+.2f} -3.1415 -3.14 帶符號保留兩位小數
{:.0f} 3.1415 3 不帶小數
{:0>3d} 1 XX1 寬度爲3,不足從左邊開始填充X,其中X表示0~9任意數
{:0<4d} 10 10XX 寬度爲4,不足從右邊開始填充X,其中X表示0~9任意數
{:>10d} 13 13 右對齊(寬度爲10,不足從左邊開始填充空格)
{:<10d} 13 13 左對齊(寬度爲10,不足從右邊邊開始填充空格)
{:^10d} 13 13 中間對齊(寬度爲10,不足從左右兩邊填充空格)
{:,} 1000 1,000 以逗號分隔的數字格式
{:.2%} 0.99 99% 百分比格式,保留2位小數
{:.2e} 1000 1.00e+03 指數記法,保留2位小數
{:.1e} 0.012 1.2e-02 指數記法,保留1位小數
{:b} 11 1011 二進制:binary
{:d} 11 11 十進制:decimal
{:o} 11 13 八進制:octonary
{:x} 11 b 十六進制:hexadecimal(sexadecimal)
{:#x} 11 0xb 十六進制:hexadecimal(sexadecimal)
{:#X} 11 0XB 十六進制:hexadecimal(sexadecimal)

本文參考:
1、https://www.runoob.com/python/att-string-format.html


版權聲明:本文爲博主原創文章,如需轉載,請給出:
原文鏈接:https://blog.csdn.net/qq_35844043/article/details/103008000

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章