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