教你Python格式化字串的3種方法

安全劍客發表於2020-07-13
使用Python的夥伴們,經常會用到print輸出日誌進行除錯,那麼如何格式化輸出字串?今天跟大家繼續分享關於Python的小知識。
前言

使用Python的夥伴們,經常會用到print輸出日誌進行除錯,那麼如何格式化輸出字串?今天跟大家繼續分享關於Python的小知識。

教你Python格式化字串的3種方法教你Python格式化字串的3種方法

說明

我們經常會用到%-formatting和str.format()來格式化,而在Python 3.6版本開始,增加了f-strings語法,下面我將詳細的介紹這三種方式。

1. %-formatting格式化字串

最早的格式化是用%(百分號), 它這麼用:

In : name = 'World' 
In : id = '10' 
In : 'Hello %s,id=%s' %(name,id) 
Out: 'Hello World,id=10'

這裡用的%s表示格式化成字串,另外常用的是%d(十進位制整數)、%f(浮點數)。

另外也支援使用字典的形式:

In : 'Hello[%(name)s],id=%(name)s' % {'id': 10, 'name': 'World'} 
Hello[World],id=10
2. str.format()格式化字串

常規用法

In : name = 'World' 
In : 'Hello {}' %(name) 
Out: 'Hello World'

透過位置訪問:

In : '{2}, {1}, {0}'.format('a', 'b', 'c') 
Out: 'c, b, a'

透過關鍵字訪問:

In : 'Hello {name}'.format(name='testerzhang') 
Out: 'Hello testerzhang'
3. f-string格式化字串

Python3.6 版本開始出現了此新的格式化字串,效能又優於前面兩種方式。

In : name = "testerzhang" 
In : print(f'Hello {name}.') 
In : print(f'Hello {name.upper()}.') 
Out: Hello testerzhang. 
Out: Hello TESTERZHANG. 
In : d = {'id': 1, 'name': 'testerzhang'} 
In : print(f'User[{d["id"]}]: {d["name"]}') 
Out: User[1]: testerzhang

注意:如果低於Python3.6,可以透過pip install future-fstrings即可,在相應的py 檔案裡不需要加import這個庫,但是需要頭部加上# coding: future_fstrings。

結束語

因為我現在轉向Python3.X版本,所以用第三種方法也是用得很頻繁,不再使用第二種方式,感覺也是很不錯。

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2704256/,如需轉載,請註明出處,否則將追究法律責任。

相關文章