格式匯總:
| 格式 | 描述 | 格式 | 描述 |
|---|---|---|---|
| %% | 百分號(hào)%標(biāo)記(多出來(lái)的%是轉(zhuǎn)義作用) | ||
| %c | 字符及其ASCII碼 | %s | 字符串 |
| %d | 有符號(hào)整數(shù)(十進(jìn)制) | %u | 無(wú)符號(hào)整數(shù)(十進(jìn)制) |
| %o | 無(wú)符號(hào)整數(shù)(八進(jìn)制) | ||
| %x | 無(wú)符號(hào)整數(shù)(十六進(jìn)制) | %X | 無(wú)符號(hào)整數(shù)(十六進(jìn)制大寫(xiě)字符) |
| %e | 浮點(diǎn)數(shù)字(科學(xué)計(jì)數(shù)法) | %E | 浮點(diǎn)數(shù)字(科學(xué)計(jì)數(shù)法,用E代替e) |
| %f | 浮點(diǎn)數(shù)字(用小數(shù)點(diǎn)符號(hào)) | ||
| %g | 浮點(diǎn)數(shù)字(根據(jù)值的不同自動(dòng)選擇%e或%f) | %G | 浮點(diǎn)數(shù)字(類(lèi)似于%g,根據(jù)值的不同自動(dòng)選擇%E或%f) |
| %p | 指針(用十六進(jìn)制打印值的內(nèi)存地址) | %n | 存儲(chǔ)輸出字符的數(shù)量放進(jìn)參數(shù)列表的下一個(gè)變量中 |
不過(guò)由于在python中,所有東西都可以轉(zhuǎn)換成string類(lèi)型,因此,如果沒(méi)有什么特殊需求完全可以全部使用'%s‘來(lái)標(biāo)記。
比如:'%s %s %s' % (1, 2.3, ['one', 'two', 'three'])
它的輸出為'1 2.3 ['one', 'two', 'three']',就是按照%左邊的標(biāo)記輸出的。
雖然第一個(gè)和第二值不是string類(lèi)型,一樣沒(méi)有問(wèn)題。
[在這個(gè)過(guò)程中,當(dāng)電腦發(fā)現(xiàn)第一個(gè)值不是%s時(shí),會(huì)先調(diào)用整型數(shù)的函數(shù),把第一個(gè)值也就是1轉(zhuǎn)成string類(lèi)型,然后再調(diào)用str()函數(shù)來(lái)輸出。]
上面說(shuō)的只是格式標(biāo)記的最簡(jiǎn)間的形式,來(lái)看復(fù)雜一點(diǎn)的:
制定輸出長(zhǎng)度:
‘%6.2f' % 1.235
在這種形式中,在f的前面出現(xiàn)了一個(gè)類(lèi)似小數(shù)的6.2它表示的意思是,總共輸出的長(zhǎng)度為6個(gè)字符,其中小數(shù)2位。
還有更復(fù)雜的:
占位符:
‘%06.2f' % 1.235
在6的前面多了一個(gè)0,表示如果輸出的位數(shù)不足6位就用0補(bǔ)足6位。
這一行的輸出為‘001.24',可以看到小數(shù)也占用一位。
類(lèi)似于這里0這樣的標(biāo)記還有-、+。其中,-表示左對(duì)齊,+表示在正數(shù)前面也標(biāo)上+號(hào),默認(rèn)是不加的。
實(shí)例:
%ns:如果字符串變量s不足n位的話,會(huì)先輸出若干個(gè)空格后再輸出str1
%-ns:與上述相反,先輸出變量s,不足的然后用空格在后面補(bǔ)齊。
其他:
字典格式化輸出:
‘%(name)s:%(score)06.1f' %{'score':9.5, 'name':'newsim'}
這種形式只用在要輸出的內(nèi)容為dictionary時(shí)。小括號(hào)中的(name)和(score)對(duì)應(yīng)于后面的鍵值對(duì)中的鍵。
有時(shí)候在%6.2f這種形式中,6和2也不能事先指定,會(huì)在程序運(yùn)行過(guò)程中再產(chǎn)生,那怎么輸入呢,當(dāng)然不能用%%d.%df或%d.%d%f。
可以用%*.*f的形式,當(dāng)然在后面的”要輸出的值組“中包含那兩個(gè)*的值。
比如:'%*.*f' % (6, 2, 2.345)就相當(dāng)于'%6.2f' % 2.345。
不過(guò)如果記不住,或不想那么耐煩,完全可以全部用%s代替,或者用多個(gè)"+"來(lái)構(gòu)造類(lèi)似的輸出字符串。
新聞熱點(diǎn)
疑難解答
圖片精選