L7-Python字符串格式化小結


本篇彙總了Python中字符串格式化輸出的方法,並給出各自使用樣例。

一、百分號-%

1、直接使用

print("I'm %s. I'm %d year old" % ('Vamei', 99))

2、表達式賦值

實際上構成一個字符串表達式。我們可以像一個正常的字符串那樣,將它賦值給某個變量。比如:

a = "I'm %s. I'm %d year old" % ('Vamei', 99)
print(a)

3、綁定變量名

print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})

4、格式符彙總說明

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

格式控制符號 說明
%s 字符串 (採用str()的顯示)
%r 字符串(採用repr()的顯示)
%c 單個字符
%b 二進制整數
%d 十進制整數
%i 十進制整數
%o 八進制整數
%x 十六進制整數
%e 指數 (基底寫爲e)
%E 指數 (基底寫爲E)
%f 浮點數
%g 指數(e)或浮點數 (根據顯示長度)
%% 字符"%"

5、更精細化的控制

可以用如下的方式,對格式進行進一步的控制:

%[(name)][flags][width].[precision]typecode

(name)爲命名

flags可以有+,-,’ ‘或0。+表示右對齊。-表示左對齊。’ '爲一個空格,表示在正數的左側填充一個空格,從而與負數對齊。0表示使用0填充。

width表示顯示寬度

precision表示小數點後精度
比如:

# 輸出結果用0填充
print("%04d" % 5)#0005
# 輸出結果用空串填充,注意,數值長度爲6也包含了小數點'.' 
print("%6.3f" % 2.3)# 2.300

上面的width, precision爲兩個整數。
我們可以利用*,來動態代入這兩個量。比如:

二、 format控制

基本語法

python還有一個更強大的字符串處理函數:str.format()
基本語法思路是:通過 {}: 來代替以前的 %

 '{0},{1}'.format('kzc',18) 
 '{},{}'.format('kzc',18) 
 '{1},{0},{1}'.format('kzc',18) 

1、綁定變量名

 '{name},{age}'.format(age=18,name='kzc')

2、綁定對象屬性

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)) 

3、通過下標取元素來賦值

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

4、填充與對齊

符號 功能
^ 居中
< 左對齊
> 右對齊
: s 表示用字符 s 填充,若不指定flag,則用空格填充
# 用空字符填充
'{:>8}'.format('189')
'   189'
# 用填充
'{:0>8}'.format('189')
'00000189'
# 用字符'a'填充
'{:a>8}'.format('189')
'aaaaa189'

5、精度與類型

精度常跟類型f一起使用
其中.2表示長度爲2的精度,f表示float類型。

'{:.2f}'.format(321.33345)

6、千位分隔符

'{:,}'.format(1234567890)
#'1,234,567,890'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章