前言
使用Python的伙伴們,經(jīng)常會(huì)用到print輸出日志進(jìn)行調(diào)試,那么如何格式化輸出字符串?今天跟大家繼續(xù)分享關(guān)于Python的小知識(shí)。
說明
我們經(jīng)常會(huì)用到%-formatting和str.format()來格式化,而在Python 3.6版本開始,增加了f-strings語法,下面我將詳細(xì)的介紹這三種方式。
1. %-formatting格式化字符串
- 最早的格式化是用%(百分號(hào)), 它這么用:
In : name = 'World'
In : id = '10'
In : 'Hello %s,id=%s' %(name,id)
Out: 'Hello World,id=10'
這里用的%s表示格式化成字符串,另外常用的是%d(十進(jìn)制整數(shù))、%f(浮點(diǎn)數(shù))。
- 另外也支持使用字典的形式:
In : 'Hello[%(name)s],id=%(name)s' % {'id': 10, 'name': 'World'}
Hello[World],id=10
2. str.format()格式化字符串
- 常規(guī)用法
In : name = 'World'
In : 'Hello {}' %(name)
Out: 'Hello World'
- 通過位置訪問:
In : '{2}, {1}, {0}'.format('a', 'b', 'c')
Out: 'c, b, a'
- 通過關(guān)鍵字訪問:
In : 'Hello {name}'.format(name='testerzhang')
Out: 'Hello testerzhang'
3. f-string格式化字符串
Python3.6 版本開始出現(xiàn)了此新的格式化字符串,性能又優(yōu)于前面兩種方式。
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即可,在相應(yīng)的py腳本文件里不需要加import這個(gè)庫,但是需要頭部加上# coding: future_fstrings。
結(jié)束語
因?yàn)槲椰F(xiàn)在轉(zhuǎn)向Python3.X版本,所以用第三種方法也是用得很頻繁,不再使用第二種方式,感覺也是很不錯(cuò)。
你們用的是哪種方式?可以進(jìn)行評(píng)論。