...">
瀏覽量:135次
python怎么格式化字符串呢?不知道的小伙伴來看看陽泰小編今天的分享吧!
python中格式化字符串有三種方法:%、format()、添加的f字符串調(diào)試。
1、%格式化字符串
%格式化字符串是python最早的,也是能兼容所有版本的一種字符串格式化方法,在一些python早期的庫(kù)中,建議使用%格式化方式,他會(huì)把字符串中的格式化符按順序后面參數(shù)替換,格式是
"xxxxxx %s xxxxxx" % (value1, value2)
其中 %s就是格式化符,意思是把后面的值格式化為字符類型,類似的格式化符還有%d,%f等,具體參考文章Python字符串格式化
后面的value1,value2就是要格式化的值,不論是字符還是數(shù)值,都會(huì)被格式化為格式化符對(duì)應(yīng)的類型
當(dāng)然可以不用以元組的形式傳值,你可以直接寫這樣:"xxxxx %s" % value,不過不建議這樣寫,一是應(yīng)為這樣只能傳遞一個(gè)參數(shù),二是如果value是元組或列表等類型,這樣會(huì)觸發(fā)TypeErrer
如果只傳一個(gè)參數(shù),并且很確定參數(shù)類型不會(huì)觸發(fā)異常,可以使用上面的寫法,否則,要提供一個(gè)單元素元組,就像"xxxx %s " % (value,)
2、format()
%雖然強(qiáng)大,但用起來難免有些麻煩,代碼也不是特別美觀,因此,在python 2.5 之后,提供了更加優(yōu)雅的str.format()方法。
def format(self, *args, **kwargs): # known special case of str.format
"""
S.format(*args, **kwargs) -> str
Return a formatted version of S, using substitutions from args and kwargs.
The substitutions are identified by braces ('{' and '}').
"""
pass
format()的常用用法:
# 使用名稱占位符
s2 = "xxxx {age} xxxx {name}".format(age=18, name="hangman")
print(s2)? # xxxx 18 xxxx hangman
# 使用序號(hào)占位符,為空默認(rèn)從左到右01234.。
s3 = "xxxx {1} xxx{0}".format(value1,value2)
print(s3)? # xxxx [9, 0] xxx(7, 8)
# 也可以混合使用
s4 = "xxxx {} XXX {name} xxx {}".format(value2,value1,name="s4")
print(s4)? # xxxx [9, 0] XXX s4 xxx (7, 8)
3、 f-string
f-string是2015年python 3.6 根據(jù)PEP 498新添加的一種字符串格式化方法,f-string實(shí)際上是在運(yùn)行時(shí)計(jì)算的表達(dá)式,而不是常量值。在Python源代碼中,f-string是一個(gè)文字字符串,前綴為’f’,其中包含大括號(hào)內(nèi)的表達(dá)式。表達(dá)式會(huì)將大括號(hào)中的內(nèi)容替換為其值。例如:
import datetime
name = "zings"
age = 17
date = datetime.date(2019,7,18)
print(f'my name is {name}, this year is {date:%Y},Next year, I\'m {age+1}')? # my name is zings, this year is 2019,Next year, I'm 18
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776