python中使用%與.format格式化文本

初學python,看來零零碎碎的格式化文本的方法,總結一下python中格式化文本的方法。使用不當的地歡迎指出謝謝。python

一、首先看使用%格式化文本oop

常見的佔位符:3d

常見的佔位符有:
%d    整數
%f    浮點數
%s    字符串
%x    十六進制整數

使用方法:code

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

使用的時候不知道寫什麼的地方直接使用 %s 進行代替,語句的末尾加上 %() 括號裏面直接填寫內容便可(字符串加上引號,中間用「,」分割),若是隻有一個%?,括號能夠省略。orm

高級一點的用法:字符串

格式化整數指定是否補零:it

首先看代碼:form

複製代碼

>>> '%d-%d' % (3, 23)
'3-23'
>>> '%2d-%2d' % (3, 23)
' 3-23'
>>> '%3d-%3d' % (3, 23)
'  3- 23'
>>> '%4d-%4d' % (3, 23)
'   3-  23'
>>> '%01d-%01d' % (3, 23)
'3-23'
>>> '%02d-%02d' % (3, 23)
'03-23'
>>> '%03d-%03d' % (3, 23)
'003-023'
>>> '%04d-%04d' % (3, 23)
'0003-0023'
>>>

複製代碼

能夠看得出來,d前面的數字用來指定佔位符,表示被格式化的數值佔用的位置數量(字節仍是什麼不知道這樣的表述是否正確),指定以後好比%3d,表明這個整數要佔用3個位置,前面若是有0表明佔用的地方使用0補齊,沒有就使用空格補齊。指定的空間位置小於實際的數字大小,以實際佔用的位置大小爲準。數據類型

 

指定小數的位數:方法

複製代碼

>>> '%.f' % 3.1415926
'3'
>>> '%.1f' % 3.1415926
'3.1'
>>> '%.2f' % 3.1415926
'3.14'
>>> '%.3f' % 3.1415926
'3.142'
>>>

複製代碼

能夠看出.後面的數字用來表示保留的小數點的位數,".1"表明保留小數點後面一位小數。

若是不肯定應該用什麼,%s永遠起做用,它會把任何數據類型轉換爲字符串:

>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'

有些時候,字符串裏面的%是一個普通字符怎麼辦?這個時候就須要轉義,用%%來表示一個%

>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'

嘗試使用其餘方法對%進行轉義,可是好像沒有用,有什麼其餘方法歡迎評論。

二、使用format 方法進行格式化

代碼演示:

age = 25
name = 'Swaroop'
print('{0} is {1} years old'.format(name, age))
print('Why is {0} playing with that python?'.format(name))

位置使用{1}按照使用的順序寫好,後面格式使用 .format()  寫好對應的參數便可。

輸出結果:

Swaroop is 25 years old
Why is Swaroop playing with that python?

其實也能夠使用第一種方法實現:

age = 25
name = 'Swaroop'
print('%s is %s years old'%(name, age))
print('Why is %s playing with that python?'%(name))

輸出

Swaroop is 25 years old
Why is Swaroop playing with that python?

實現的結果都是同樣的。

 具體二者的區別參看 http://python.jobbole.com/87065/

相關文章
相關標籤/搜索