Python字符串格式化%s%d%f詳解
關(guān)于討論輸出格式化的問題,小編不是一時(shí)興起,之前學(xué)習(xí)python的時(shí)候就經(jīng)常遇到輸出時(shí)“%d”,一直沒有仔細(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)容。
%s 字符串
string="hello" #%s打印時(shí)結(jié)果是hello print "string=%s" % string # output: string=hello #%2s意思是字符串長(zhǎng)度為2,當(dāng)原字符串的長(zhǎng)度超過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
%d 整型
num=14 #%d打印時(shí)結(jié)果是14 print "num=%d" % num # output: num=14 #%1d意思是打印結(jié)果為1位整數(shù),當(dāng)整數(shù)的位數(shù)超過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ù)值指定 #如下,不過這種方式04就失去補(bǔ)0的功能,只能補(bǔ)空格,只有小數(shù)點(diǎn)后面的3才能補(bǔ)0 print "num=%*.*d" % (04,3,num) # output: num= 014
%f 浮點(diǎn)型
import math #%a.bf,a表示浮點(diǎn)數(shù)的打印長(zhǎng)度,b表示浮點(diǎn)數(shù)小數(shù)點(diǎn)后面的精度 #只是%f時(shí)表示原值,默認(rèn)是小數(shù)點(diǎn)后5位數(shù) print "PI=%f" % math.pi # output: PI=3.141593 #只是%9f時(shí),表示打印長(zhǎng)度9位數(shù),小數(shù)點(diǎn)也占一位,不夠左側(cè)補(bǔ)空格 print "PI=%9f" % math.pi # output: PI=_3.141593 #只有.沒有后面的數(shù)字時(shí),表示去掉小數(shù)輸出整數(shù),03表示不夠3位數(shù)左側(cè)補(bǔ)0 print "PI=%03.f" % math.pi # output: PI=003 #%6.3f表示小數(shù)點(diǎn)后面精確到3位,總長(zhǎng)度6位數(shù),包括小數(shù)點(diǎn),不夠左側(cè)補(bǔ)空格 print "PI=%6.3f" % math.pi # output: PI=_3.142 #%-6.3f表示小數(shù)點(diǎn)后面精確到3位,總長(zhǎng)度6位數(shù),包括小數(shù)點(diǎn),不夠右側(cè)補(bǔ)空格 print "PI=%-6.3f" % math.pi # output: PI=3.142_ #還可以用%*.*f來(lái)表示精度,兩個(gè)*的值分別在后面小括號(hào)的前兩位數(shù)值指定 #如下,不過這種方式06就失去補(bǔ)0的功能,只能補(bǔ)空格 print "PI=%*.*f" % (06,3,math.pi) # output: PI=_3.142
總結(jié)
以上就是本文關(guān)于Python字符串格式化%s%d%f詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
python爬取分析超級(jí)大樂透歷史開獎(jiǎng)數(shù)據(jù)
這篇文章主要介紹了python爬取分析超級(jí)大樂透歷史開獎(jiǎng)數(shù)據(jù),本次使用了requests和beautifulsoup庫(kù)進(jìn)行數(shù)據(jù)的爬取,通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Python使用PyMySql增刪改查Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)
PyMysql是Python中用于連接MySQL數(shù)據(jù)庫(kù)的一個(gè)第三方庫(kù),本文主要介紹了Python使用PyMySql增刪改查Mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Python使用windows設(shè)置定時(shí)執(zhí)行腳本
這篇文章主要介紹了Python使用windows設(shè)置定時(shí)執(zhí)行腳本,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
深入理解python虛擬機(jī)如何實(shí)現(xiàn)閉包
當(dāng)能夠從設(shè)計(jì)者的層面去理解閉包就再也不用死記硬背一些閉包的概念了,所以本文就來(lái)從虛擬機(jī)層面和大家一起討論函數(shù)閉包是如何實(shí)現(xiàn)的2023-10-10
Python中的條件判斷語(yǔ)句與循環(huán)語(yǔ)句用法小結(jié)
這篇文章主要介紹了Python中的條件判斷語(yǔ)句與循環(huán)語(yǔ)句用法小結(jié),條件語(yǔ)句和循環(huán)語(yǔ)句是Python程序流程控制的基礎(chǔ),需要的朋友可以參考下2016-03-03
python中使用requests設(shè)置代理服務(wù)器
文章介紹了代理服務(wù)器的工作原理和使用方法,包括代理的概念、代理服務(wù)器的作用、如何在Python中設(shè)置代理以及代理的匿名度分類2024-11-11
python數(shù)據(jù)批量寫入ScrolledText的優(yōu)化方法
今天小編就為大家分享一篇python數(shù)據(jù)批量寫入ScrolledText的優(yōu)化方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-10-10
如何使Python中的print()語(yǔ)句運(yùn)行結(jié)果不換行
這篇文章主要介紹了如何使Python中的print()顯示當(dāng)前語(yǔ)句后不換行,print() 是一個(gè)常用函數(shù),但是每次,print()語(yǔ)句顯示后都會(huì)換行,本問我們就來(lái)節(jié)日如何使print()顯示當(dāng)前語(yǔ)句后不換行,需要的朋友可以參考一下2022-03-03

