關(guān)于討論輸出格式化的問(wèn)題,小編不是一時(shí)興起,之前學(xué)習(xí)python的時(shí)候就經(jīng)常遇到輸出時(shí)“%d”,一直沒(méi)有仔細(xì)學(xué)習(xí),今天又看到了,下面分享一個(gè)簡(jiǎn)單實(shí)例,python輸出99乘法表:
#!/usr/bin/python# -*- coding: UTF-8 -*- for i in range(1, 10): print for j in range(1, i+1): print "%d*%d=%d" % (i, j, i*j),
結(jié)果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
>>>
下面我們就來(lái)研究下字符串輸出格式化的具體內(nèi)容。
string="hello" #%s打印時(shí)結(jié)果是hello print "string=%s" % string # output: string=hello #%2s意思是字符串長(zhǎng)度為2,當(dāng)原字符串的長(zhǎng)度超過(guò)2時(shí),按原長(zhǎng)度打印,所以%2s的打印結(jié)果還是hello print "string=%2s" % string # output: string=hello #%7s意思是字符串長(zhǎng)度為7,當(dāng)原字符串的長(zhǎng)度小于7時(shí),在原字符串左側(cè)補(bǔ)空格, #所以%7s的打印結(jié)果是 hello print "string=%7s" % string # output: string= hello #%-7s意思是字符串長(zhǎng)度為7,當(dāng)原字符串的長(zhǎng)度小于7時(shí),在原字符串右側(cè)補(bǔ)空格, #所以%-7s的打印結(jié)果是 hello print "string=%-7s!" % string # output: string=hello ! #%.2s意思是截取字符串的前2個(gè)字符,所以%.2s的打印結(jié)果是he print "string=%.2s" % string # output: string=he #%.7s意思是截取字符串的前7個(gè)字符,當(dāng)原字符串長(zhǎng)度小于7時(shí),即是字符串本身, #所以%.7s的打印結(jié)果是hello print "string=%.7s" % string # output: string=hello #%a.bs這種格式是上面兩種格式的綜合,首先根據(jù)小數(shù)點(diǎn)后面的數(shù)b截取字符串, #當(dāng)截取的字符串長(zhǎng)度小于a時(shí),還需要在其左側(cè)補(bǔ)空格 print "string=%7.2s" % string # output: string= he print "string=%2.7s" % string # output: string=hello print "string=%10.7s" % string # output: string= hello #還可以用%*.*s來(lái)表示精度,兩個(gè)*的值分別在后面小括號(hào)的前兩位數(shù)值指定 print "string=%*.*s" % (7,2,string) # output: string= he
num=14 #%d打印時(shí)結(jié)果是14 print "num=%d" % num # output: num=14 #%1d意思是打印結(jié)果為1位整數(shù),當(dāng)整數(shù)的位數(shù)超過(guò)1位時(shí),按整數(shù)原值打印,所以%1d的打印結(jié)果還是14 print "num=%1d" % num # output: num=14 #%3d意思是打印結(jié)果為3位整數(shù),當(dāng)整數(shù)的位數(shù)不夠3位時(shí),在整數(shù)左側(cè)補(bǔ)空格,所以%3d的打印結(jié)果是 14 print "num=%3d" % num # output: num= 14 #%-3d意思是打印結(jié)果為3位整數(shù),當(dāng)整數(shù)的位數(shù)不夠3位時(shí),在整數(shù)右側(cè)補(bǔ)空格,所以%3d的打印結(jié)果是14_ print "num=%-3d" % num # output: num=14_ #%05d意思是打印結(jié)果為5位整數(shù),當(dāng)整數(shù)的位數(shù)不夠5位時(shí),在整數(shù)左側(cè)補(bǔ)0,所以%05d的打印結(jié)果是00014 print "num=%05d" % num # output: num=00014 #%.3d小數(shù)點(diǎn)后面的3意思是打印結(jié)果為3位整數(shù), #當(dāng)整數(shù)的位數(shù)不夠3位時(shí),在整數(shù)左側(cè)補(bǔ)0,所以%.3d的打印結(jié)果是014 print "num=%.3d" % num # output: num=014 #%.0003d小數(shù)點(diǎn)后面的0003和3一樣,都表示3,意思是打印結(jié)果為3位整數(shù), #當(dāng)整數(shù)的位數(shù)不夠3位時(shí),在整數(shù)左側(cè)補(bǔ)0,所以%.3d的打印結(jié)果還是014 print "num=%.0003d" % num # output: num=014 #%5.3d是兩種補(bǔ)齊方式的綜合,當(dāng)整數(shù)的位數(shù)不夠3時(shí),先在左側(cè)補(bǔ)0,還是不夠5位時(shí),再在左側(cè)補(bǔ)空格, #規(guī)則就是補(bǔ)0優(yōu)先,最終的長(zhǎng)度選數(shù)值較大的那個(gè),所以%5.3d的打印結(jié)果還是 014 print "num=%5.3d" % num # output: num= 014 #%05.3d是兩種補(bǔ)齊方式的綜合,當(dāng)整數(shù)的位數(shù)不夠3時(shí),先在左側(cè)補(bǔ)0,還是不夠5位時(shí), #由于是05,再在左側(cè)補(bǔ)0,最終的長(zhǎng)度選數(shù)值較大的那個(gè),所以%05.3d的打印結(jié)果還是00014 print "num=%05.3d" % num # output: num=00014 #還可以用%*.*d來(lái)表示精度,兩個(gè)*的值分別在后面小括號(hào)的前兩位數(shù)值指定 #如下,不過(guò)這種方式04就失去補(bǔ)0的功能,只能補(bǔ)空格,只有小數(shù)點(diǎn)后面的3才能補(bǔ)0 print "num=%*.*d" % (04,3,num) # output: num= 014
新聞熱點(diǎn)
疑難解答
圖片精選