淺談Python的格式化輸出
python的輸出
python輸出中的print()函數(shù),直接引用即可,它的完整格式為:
#最后面還有文件操作的,我們主要學(xué)習(xí)輸出相關(guān),所以暫不加入 print(object, sep=' ', end='\n')
object——是我們要輸出的東西,可以是變量也可以是具體的數(shù)據(jù),可以是單個也可以是多個,如果是多個中間用' , '分隔即可
sep——當(dāng)我們要輸出多個東西時才會用到,它表示我們輸出的多個數(shù)據(jù)之間輸出時用什么來進(jìn)行分隔,如果輸出時不設(shè)置,那就默認(rèn)以一個空格來分隔
end——用來設(shè)置輸出完我們要輸出的數(shù)據(jù)之后,用什么來結(jié)尾。當(dāng)你不特意進(jìn)行設(shè)置時它默認(rèn)為end='\n' ,所以print()函數(shù)默認(rèn)輸出結(jié)束后自動換行
print(1,2,3,end='') print(1,2,3,sep='!') print(1,2,3,) #它們的輸出如下: 1 2 31!2!3 1 2 3 #請仔細(xì)思考為什么這樣,理清楚頭緒
我們在C語言中學(xué)的scanf()函數(shù)是格式化輸出的,可以設(shè)置要輸出的數(shù)據(jù)的格式與數(shù)據(jù)形式,那我們在python如何來實現(xiàn)呢?
int a=10;
float b=6.6;
scanf("%d%f\n",a,b);
上面C語言代碼用python實現(xiàn)為:
a=10
b=6.6
print("%d%f"%(a,b))
#print(a,b,sep='')
如果對輸出數(shù)據(jù)格式有要求我們選用上面的方式,可以和c語言一樣對于輸出的格式進(jìn)行修改設(shè)定
如果對輸出格式?jīng)]有要求我們選用第二種方法,比較方便,與字符串一起輸出時可以用+進(jìn)行連接,但前提是輸出類型也是字符串類型的,如果不是字符串類型,那我們可以用str()函數(shù)進(jìn)行強(qiáng)制轉(zhuǎn)換在進(jìn)行連接輸出,如下:
a=18
print("Her age is "+a+" !")
上面這樣寫時錯誤的,因為a為賦值為18,所以a的數(shù)據(jù)類型為整型,整型不可以直接與字符串用+進(jìn)行連接,所以正確的寫法應(yīng)該是:
a=18
print("Her age is "+str(a)+" !")
#輸出為:Her age is 18 !
接下來具體講一下格式化輸出數(shù)據(jù),%的格式化輸出與C語言的大同小異:
%d——十進(jìn)制整數(shù)
%o —— 八進(jìn)制整數(shù)
%x —— 十六進(jìn)制整數(shù)
%f——浮點數(shù),小數(shù)點后面六位有效數(shù)字
%e ——指數(shù)形式輸出,小數(shù)點后面六位有效數(shù)字
%g ——六位有效數(shù)字的前提下,使用小數(shù)方式,否則使用科學(xué)計數(shù)法
a=5
print(10)
print("%d"%a)
print("%2d"%a)#輸出時按照2個空間大小輸出,默認(rèn)為右對齊
print("%-2d"%a)#2個空間大小,因為d前面是-號,所以左對齊
print("%02d"%a)#2個空間大小輸出,不夠的用0補(bǔ)齊
print("%-02d"%a)#2個空間大小輸出,不夠的用0補(bǔ)齊,左對齊
#以上代碼的輸出為:
10
5
5
5
05
5
總結(jié)一下上面代碼,%與d之間可以加一些數(shù)字或者符號來控制輸出數(shù)據(jù)的格式,具體為:
%(控制左右對齊)(用什么補(bǔ)齊)(按照幾位空間輸出)d分別為:
默認(rèn)為右對齊,負(fù)號為左對齊
默認(rèn)空格補(bǔ)齊,可以設(shè)置其他補(bǔ)齊
數(shù)字本身超過要求的空間時,無影響,數(shù)據(jù)本身不夠時,根據(jù)左右對齊,在根據(jù)補(bǔ)齊。說白了就是占位置
其他的數(shù)據(jù)類型也都是類似的,無論是浮點數(shù)還是字符串,如%5.2f代表,占五個位置,并且保留兩位小數(shù),要特別注意的是浮點數(shù)的小數(shù)點也是占一個位置的,接下來看幾個實例,好好體會一下
b=5.21
print(b)
print("%f"%b)
print("%2.1f"%b)
print("%2.2f"%b)
print("%5.2f"%b)
print("%5.5f"%b)
print("%.5f"%b)
#上面的輸出依次為:
5.21
5.210000
5.2
5.21
5.21
5.21000
5.21000
#大家注意對比研究
有些東西必須要自己體會出來才能記下來,希望大家能夠勤奮思考,不要偷懶!
接下來介紹一個函數(shù)——str.format()
相對基本格式化輸出采用‘%'的方法,format()功能更強(qiáng)大,該函數(shù)把字符串當(dāng)成一個模板,通過傳入的參數(shù)進(jìn)行格式化,并且使用大括號‘{}'作為特殊字符代替‘%'
廢話不多說上代碼?。。?/p>
#通過位置匹配,類似于數(shù)組
print('{} {}'.format('hello','baibai'))#hello baibai
print('{1} {0}'.format('hello','baibai'))#baibai hello
print('{1} {1}'.format('hello','baibai'))#baibai baibai
print('{0} {0}{0}'.format('hello','baibai'))#hello hellohello
#通過對應(yīng)值名字進(jìn)行匹配,類似于字典
#(這里也可以傳入一個字典類型進(jìn)行key與value對應(yīng)?。?
print('{a},'.format(a='1',b='8'))#1,8
除了這些,我們還可以輸出更加復(fù)雜的數(shù)據(jù)類型
#還是用一下我之前定義的一個數(shù)據(jù)
goods=[(1,"百事可樂",10,3),(2,"康師傅方便面",15,2),(3,"馬克杯",5,30)]
list=[1,2,3]
print('{0[1]}'.format(goods))#(2, '康師傅方便面', 15, 2)
print('{0[1]},{1[2]}'.format(goods,list))#(2, '康師傅方便面', 15, 2),3
print('{0[1][1]}'.format(goods,list))#康師傅方便面
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Django外鍵(ForeignKey)操作以及related_name的作用詳解
這篇文章主要介紹了Django外鍵(ForeignKey)操作以及related_name的作用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python+unittest+requests+excel實現(xiàn)接口自動化測試框架
這篇文章主要介紹了Python+unittest+requests+excel實現(xiàn)接口自動化測試框架,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
使用python快速在局域網(wǎng)內(nèi)搭建http傳輸文件服務(wù)的方法
這篇文章主要介紹了使用 python快速在局域網(wǎng)內(nèi)搭建http傳輸文件服務(wù),但是這種方法不要傳輸機(jī)密文件,安全性不高,只用到http協(xié)議沒有使用任何加密協(xié)議,具體實現(xiàn)方法跟隨小編一起看看吧2019-11-11
在Python的Django框架中調(diào)用方法和處理無效變量
這篇文章主要介紹了在Python的Django框架中調(diào)用方法和處理無效變量的方法,是Django編程中的基礎(chǔ)操作,需要的朋友可以參考下2015-07-07

