日期: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