Python數據格式化


Python有兩種格式化字符串的方式,使用%或者使用內置format()函數。

使用%格式化字符串

在Python中使用%來格式化字符串,用法和效果類似於C語言中的%。格式為:%特定的轉換類型 %data。

以下是常用的轉換類型

%s   字符串
%d   十進制整數
%x   十六進制整數
%o   八進制整數
%f   十進制浮點數
%e   科學計數法表示浮點數
%g   十進制或科學計數法表示的浮點數
%%   %本身

 

 

 

 

 

 

使用%格式化的例子,如下

 1 >>> n = 52
 2 >>> f = 72.08
 3 >>> s = 'this is a test string'
 4 >>> '%s %s %s' %(n,f,s)
 5 
 6 >>> print('%s\n%s\n%s' %(n,f,s))  //以%s的方式輸出
 7 52
 8 72.08
 9 this is a test string
10 
11 >>> print('%d\n%d' %(n,f))    //以%d的方式輸出
12 52
13 72
14 
15 字符串只能以%s的方式輸出
16 
17 >>> print('%f\n%f' %(n,f))    //以%f的方式輸出
18 52.000000
19 72.080000
20 
21 
22 >>> print('%10d\n%10f\n%10s' %(n,f,s))  //設置最小寬度為10,默認右對齊
23         52
24  72.080000
25 this is a test string
26 
27 >>> print('%-10d\n%-10f\n%-10s' %(n,f,s))  //左對齊
28 52        
29 72.080000 
30 this is a test string
31 
32 >>> print('%-10.4d\n%-10.4f\n%-10.4s' %(n,f,s)) //設置小數點精度
33 0052      
34 72.0800   
35 this

 

使用format()函數格式化字符串

使用內置format()函數格式化數據要和{}配合使用。以下是一些使用的例子。

 1 >>> n = 52
 2 >>> f = 72.08
 3 >>> s = 'this is a test string'
 4 >>> print('{}\n{}\n{}'.format(n,f,s))  //最簡單的使用方式
 5 52
 6 72.08
 7 this is a test string
 8 
 9 >>> print('{1}\n{2}\n{0}'.format(n,f,s))  //可以通過這種方式設置輸出的順序,默認0是最開始的位置,這里表示依次輸出第二個、第三個、第一個數據
10 72.08
11 this is a test string
12 52
13 
14 //format的參數可以是命名變量,或者是字典形式
15 >>> print('{f}\n{n}\n{s}'.format(n=52,f=72.08,s='this is a test string'))
16 72.08
17 52
18 this is a test string
19 
20 >>> dict1 = {'n':52, 'f':72.08, 's':'this is a test string'}
21 >>> print('{0[f]}\n{0[s]}\n{0[n]}'.format(dict1))
22 72.08
23 this is a test string
24 52
25 
26 >>> dict2 = {'n2':13, 'f2':5.08, 's2':'hello string'}
27 >>> print('{0[f]}\n{0[s]}\n{0[n]}\n{1[f2]}\n{1[n2]}\n{1[s2]}\n{2}'.format(dict1,dict2,'string3'))
28 72.08
29 this is a test string
30 52
31 5.08
32 13
33 hello string
34 string3
35 
36 //設置輸出的格式
37 >>> print('{0[f]:10.4f}\n{0[s]:10.4s}\n{0[n]:10d}\n{1[f2]}\n{1[n2]}\n{1[s2]:15s}\n{2}'.format(dict1,dict2,'string3'))
38    72.0800
39 this      
40         52
41 5.08
42 13
43 hello string   
44 string3
45 
46 //可以使用>設置有對齊<設置左對齊,使用^設置居中,看下面的例子
47 >>> print('{0[f]:>10.4f}\n{0[s]:>10.4s}\n{0[n]:>10d}\n{1[f2]}\n{1[n2]}\n{1[s2]:15s}\n{2}'.format(dict1,dict2,'string3'))
48    72.0800
49       this
50         52
51 5.08
52 13
53 hello string   
54 string3
55 
56 >>> print('{0[f]:^10.4f}\n{0[s]:^10.4s}\n{0[n]:^10d}\n{1[f2]}\n{1[n2]:^10d}\n{1[s2]:15s}\n{2}'.format(dict1,dict2,'string3'))
57  72.0800  
58    this   
59     52    
60 5.08
61     13    
62 hello string   
63 string3
64 
65 //另外可以設置填充字符,填充字符的位置在:之后,在排版符(<,>,^)之前
66 >>> '{0:#^20s}'.format('center')
67 '#######center#######'

 

 

更多format()的格式化的內容點這里

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM