Python格式化字串

來源:互聯網
上載者:User

標籤:val   student   計數   傳值   基本   十六進位   操作符   ret   預留位置   

一、通過%來格式化輸出。

格式化字串時,Python使用一個字串作為模板。模板中有格式符,這些格式符為真實值預留位置,並說明真實數值應該呈現的格式。Python用一個tuple將多個值傳遞給模板,每個值對應一個格式符。

#普通傳值方法print(‘name:%s,age:%d‘ %(‘mzc‘,20))輸出:name:mzc,age:20#使用dict進行傳值print(‘my name is %(name)s,age %(age)d‘ %{‘name‘:‘jerry‘,‘age‘:20})
輸出:my name is jerry,age 20

列印浮點數、以及選擇保留小數位元

保留的小數位元由輸出控制符決定%.xf   x為保留位元

#浮點數不更改列印print(‘width is %f‘ %1.337)輸出:width is 1.337000#選擇保留的小數位元print(‘width is %.2f‘ %1.345)
輸出:width is 1.34

指定預留位置寬度:

print ("Name:%10s Age:%8d Height:%8.2f"%("Aviad",25,1.83))

輸出效果:Name:     Aviad Age:      25 Height:    1.83

指定預留位置寬度(靠左對齊)

print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Aviad",25,1.83))

輸出效果:Name:Aviad      Age:25       Height:1.83 

指定預留位置(只能用0當預留位置?)

print ("Name:%-10s Age:%08d Height:%08.2f"%("Aviad",25,1.83))

輸出效果:Name:Aviad      Age:00000025 Height:00001.83

科學計數法

format(0.0015,‘.2e‘)

輸出效果:‘1.50e-03‘

 

 

格式符

格式符為真實值預留位置,並控制顯示的格式。格式符可以包含有一個類型碼,用以控制顯示的類型,如下:

%s    字串 (採用str()的顯示)

%r    字串 (採用repr()的顯示)

%c    單個字元

%b    二進位整數

%d    十進位整數

%i    十進位整數

%o    八進位整數

%x    十六進位整數

%e    指數 (基底寫為e)

%E    指數 (基底寫為E)

%f    浮點數

%F    浮點數,與上相同

%g    指數(e)或浮點數 (根據顯示長度)

%G    指數(E)或浮點數 (根據顯示長度)

%%    字元"%"

 

Python中內建的%操作符可用于格式化字串操作,控制字元串的轉譯格式。Python中還有其他的格式化字串的方式,但%操作符的使用是最方便的。

另外python還有一個更強大的字串處理函數  str.format()

文法

它通過{}和:來代替%。
format輸出控制是一種映射關係。

1、通過位置

print(‘{0},{1}‘.format(‘kzc‘,18))輸出:‘kzc,18‘

print(‘{},{}‘.format(‘kzc‘,18))輸出: ‘kzc,18‘

print(‘{1},{0},{1}‘.format(‘kzc‘,18)) 輸出:‘18,kzc,18‘

2、通過關鍵字

print(‘{name},{age}‘.format(age=18,name=‘kzc‘)) 輸出:‘kzc,18‘

3、通過對象屬性

class Person:   def __init__(self,name,age):     self.name,self.age = name,age     def __str__(self):       return ‘This guy is {self.name},is {self.age} old‘.format(self=self) 

str(Person(‘kzc‘,18))

輸出結果:‘This guy is kzc,is 18 old‘

4、通過下標

p=[‘kzc‘,18]print(‘{0[0]},{0[1]}‘.format(p))

輸出結果:‘kzc,18‘

有了這些便捷的“映射”方式,我們就有了偷懶利器。基本的python知識告訴我們,list和tuple可以通過“打散”成普通參數給函數,而dict可以打散成關鍵字參數給函數(通過和*)。所以可以輕鬆的傳個list/tuple/dict給format函數。非常靈活。

print(‘my pet name is {student[0]}‘.format(student=stu_list))my pet name is tomprint(‘my pet {d[tom]} years old‘.format(d=age_dict))my pet 2 years old

 

格式限定符

它有著豐富的的“格式限定符”(文法是{}中帶:號),比如:

填充與對齊
填充常跟對齊一起使用
^、<、>分別是置中、靠左對齊、靠右對齊,後面頻寬度
:號後面帶填充的字元,只能是一個字元,不指定的話預設是用空格填充
比如

print(‘{:>8}‘.format(‘189‘))輸出: ‘   189‘print(‘{:0>8}‘.format(‘189‘))輸出: ‘00000189‘print(‘{:a>8}‘.format(‘189‘))輸出: ‘aaaaa189‘

精度與類型f
精度常跟類型f一起使用

priint(‘{:.2f}‘.format(321.33345))輸出: ‘321.33‘

其他類型
主要就是進位了,b、d、o、x分別是二進位、十進位、八進位、十六進位。

print(‘{:b}‘.format(17))輸出: ‘10001‘print(‘{:d}‘.format(17))輸出: ‘17‘print‘{:o}‘.format(17)輸出: ‘21‘print(‘{:x}‘.format(17))輸出: ‘11‘

用,號還能用來做金額的千位分隔字元。

print(‘{:,}‘.format(1234567890))輸出: ‘1,234,567,890‘

內容有一些做了修改,文章出處:http://www.jb51.net/article/108193.htm

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.