久久久久久AV无码免费看大片,亚洲一区精品人人爽人人躁,国产成人片无码免费爱线观看,亚洲AV成人无码精品网站,为什么晚上搞的时候要盖被子

Python格式化字符串的4種方式

時(shí)間:2022-03-24 20:45:25 類型:python
字號(hào):    

目錄:

Python格式化字符串的4種方式

一:%號(hào)

%號(hào)格式化字符串的方式從Python誕生之初就已經(jīng)存在,時(shí)至今日,python官方也并未棄用%號(hào),但也并不推薦這種格式化方式。

# 1、格式的字符串(即%s)與被格式化的字符串(即傳入的值)必須按照位置一一對(duì)應(yīng)
# ps:當(dāng)需格式化的字符串過多時(shí),位置極容易搞混
print('%s asked %s to do something' % ('egon', 'lili'))  # egon asked lili to do something
print('%s asked %s to do something' % ('lili', 'egon'))  # lili asked egon to do something

# 2、可以通過字典方式格式化,打破了位置帶來的限制與困擾
print('我的名字是 %(name)s, 我的年齡是 %(age)s.' % {'name': 'egon', 'age': 18})

kwargs={'name': 'egon', 'age': 18}
print('我的名字是 %(name)s, 我的年齡是 %(age)s.' % kwargs)

二:str.format

format方法是在Python 2.6中引入的,是字符串類型的內(nèi)置方法。因?yàn)閟tr.format的方式在性能和使用的靈活性上都比%號(hào)更勝一籌,所以推薦使用

2.1 使用位置參數(shù)

# 按照位置一一對(duì)應(yīng)
print('{} asked {} to do something'.format('egon', 'lili'))  # egon asked lili to do something
print('{} asked {} to do something'.format('lili', 'egon'))  # lili asked egon to do something

2.2 使用索引

# 使用索引取對(duì)應(yīng)位置的值print('{0}{0}{1}{0}'.format('x','y')) # xxyx

2.3 使用關(guān)鍵字參數(shù)or字典

# 可以通過關(guān)鍵字or字典方式的方式格式化,打破了位置帶來的限制與困擾
print('我的名字是 {name}, 我的年齡是 {age}.'.format(age=18, name='egon'))

kwargs = {'name': 'egon', 'age': 18}
print('我的名字是 {name}, 我的年齡是 {age}.'.format(**kwargs)) # 使用**進(jìn)行解包操作

三:f-Strings

str.format() 比 %格式化高級(jí)了一些,但是它還是有自己的缺陷。當(dāng)需要傳入的字符串過多時(shí),仍然會(huì)顯得非常冗長(zhǎng)。與在Python 3.6中引入 了f-strings,不僅比str.format更簡(jiǎn)潔,性能上也更勝一籌

f-string是以f或F開頭的字符串, 核心在于字符串中符號(hào){}的使用

3.1 {}中可以是變量名

name = 'egon'
age = 18
print(f'{name} {age}')  # egon 18
print(F'{age} {name}')  # 18 egon

3.2 {}中可以是表達(dá)式

# 可以在{}中放置任意合法的Python表達(dá)式,會(huì)在運(yùn)行時(shí)計(jì)算
# 比如:數(shù)學(xué)表達(dá)式
print(f'{3*3/2}') # 4.5

# 比如:函數(shù)的調(diào)用
def foo(n):
    print('foo say hello')
    return n

print(f'{foo(10)}') # 會(huì)調(diào)用foo(10),然后打印其返回值

# 比如:調(diào)用對(duì)象的方法
name='EGON'
print(f'{name.lower()}') # egon

四:標(biāo)準(zhǔn)庫模板

from string import Template

name='EGON'
t = Template('Hello $name!')
res=t.substitute(name=name)

print(res)  # Hello EGON!

五:總結(jié)四種方式的應(yīng)用場(chǎng)景

1、如果格式化的字符串是由用戶輸入的,那么基于安全性考慮,推薦使用Template

2、如果使用的python3.6+版本的解釋器,推薦使用f-Stings

3、如果要兼容python2.x版本的python解釋器,推薦使用str.format

4、如果不是測(cè)試的代碼,不推薦使用%


<