標籤:span sci www 長度 ini 格式化字串 選擇 無符號 代碼
python字串的格式化分為兩種:1)% 方式 2)str.format() 方式。
str.format() 是比 % 較新的方式, 大多數的 Python 代碼仍然使用 % 操作符。但最終會被str.format()代替,所以推薦使用str.format()
1、% 方式
1)用法
%[(name)][flags][width].[precision]typecode
2)說明
(name) 可選,用於選擇指定的key
flags 可選,主要用於數字類型
width 可選,顯示寬度,width大於顯示的長度用空格填充,小於則原樣輸出
.precision 可選,,顯示長度,字元類型:.precision大於顯示長度原樣輸出,小於則顯示前precision位字元。數字類型:小數點後保留的位元
typecode 必選,字串格式化符號
flags 的選項有:
+ 靠右對齊;在正數前面顯示加號“+”
- 靠左對齊
<sp> 靠右對齊;正數前用空格填充
0 顯示的數字前面填充‘0‘
# 在八位元前面顯示零(‘0‘),在十六進位前面顯示‘0x‘或者‘0X‘(取決於用的是%x或%X)
typecode 符串格式化符號:
c 格式化字元及其ASCII碼
s 格式化字串
d 格式化整數
u 格式化無符號整型
o 格式化無符號八位元
x 格式化無符號十六進位數
X 格式化無符號十六進位數(大寫)
f 格式化浮點數字,可指定小數點後的精度(預設保留6位小數)
e 用科學計數法格式化浮點數
E 作用同%e,用科學計數法格式化浮點數
g %f和%e的簡寫
G %f和%E的簡寫
p 十六進位數格式化變數的地址
% 顯示一個 "%"
3)執行個體
>>> "hello %s" % "world"‘hello world‘>>> "%s %d" % ("hello world", 2018)‘hello world 2018‘>>> "hello %10.2s" % "world" #"world"的顯示寬度 10,只顯示兩位字元‘hello wo‘>>> "%(name)s, %(age)d" % {"name":"LaoWang", "age":18} # 通過(name)指定顯示的內容‘LaoWang, 18‘>>> "%.2f" % 123.456 # 數字類型,保留兩位小數(預設四捨五入)‘123.46‘>>> "%(num).2f" % {"num":123.456}‘123.46‘
2、str.format() 方式 (可參考PEP 3101)
1)、用法
:[[fill]align][sign][#][0][minimumwidth][.precision][type]
2)、說明
fill [可選] 填充字元,預設為 " " (空格)
# [可選] 對於二進位、八進位、十六進位,如果加上#,會顯示0b/0o/0x,否則不顯示
, [可選] 為數字添加分隔字元,如:1,000,000
minimumwidth [可選] 格式化位所佔寬度
.precision [可選] 小數位保留精度
type [可選] 格式化類型,與 % 的一樣
align [可選] 對齊(需配合width使用)
< 內容靠左對齊
> 內容靠右對齊(預設)
= 內容靠右對齊,將符號放置在填充字元的左側,且只對數字類型有效
^ 內容置中
sign [可選] 有無符號數字
+ 在正數前面顯示加號"+"
- 在正數前面不顯示加號"+"
<ap> 正數前用空格填充
3)執行個體
>>> "{} {}".format("hello", 2018)‘hello 2018‘>>> "{0} {1}".format("hello", 2018)‘hello 2018‘>>> l1 = ["hello",2018]>>> "{0} {1}".format(*l1) #通過列表設定參數‘hello 2018‘>>> "{0[0]} {0[1]} {1[1]} {1[0]}".format(l1, "abc") #通過索引設定參數‘hello 2018 b a‘>>> "{age} {name}".format(name="zhangsan",age=18)‘18 zhangsan‘>>> d1 = {"name":"zhangsan", "age":18}>>> "{name} {age}".format(**d1) #通過字典設定參數‘zhangsan 18‘>>> "{0:-^15}".format("aa") #置中顯示,用"-"填充‘------aa-------‘>>> "{name:<10}".format(name="aa", age=18) #居左顯示‘aa ‘>>> "{age:>10}".format(name="aa", age=18) #居右顯示‘ 18‘>>> "{:^10},{:<10.2f}".format("aa", 123.456) #"aa"居左顯示,寬度10;123.456居左顯示,寬度10,保留兩位小數‘ aa ,123.46 ‘
python 字串的格式化