python 字串的格式化

來源:互聯網
上載者:User

標籤: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 字串的格式化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.