最近一直在用python寫程序,對于python的print一直很惱火,老是不按照預(yù)期輸出。在python2中print是一種輸出語句,和if語句,while語句一樣的東西,在python3中為了填補python2的各種坑,將print變?yōu)楹瘮?shù),因此導(dǎo)致python3中print的一些使用和python2很不一樣。同時,python3大改python2中的字符串格式化,主推format()函數(shù)格式,用法很是靈活,讓老用戶一時摸不著頭腦。今天特來總結(jié)一樣print和format,也希望能幫助大家徹底理解它們。
成都創(chuàng)新互聯(lián)是專業(yè)的保亭黎族網(wǎng)站建設(shè)公司,保亭黎族接單;提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行保亭黎族網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!1.print使用說明
在python2中print是這樣的:
在python3中print是以函數(shù)形式出現(xiàn)的:
可以很明顯的看出python3已經(jīng)不支持print非函數(shù)格式了,在python3中使用print,必須加()。
我們在python3中help(print): (注意,在python2中是不能help(print)的,因為其不是一個函數(shù))
可以清楚看到print函數(shù)的幾個參數(shù),file是文件描述符,flush控制是否沖刷緩沖區(qū),end為結(jié)束字符,默認(rèn)為換行,sep是輸出的幾個變量間的字符,默認(rèn)為空格。弄清楚這些,以后操作起來就順溜了。
試試看:
上面是python3,可以看到改變end為空字符就能避免換行,下面是python2,奇怪的是說好的不換行還是換了。。。
誰能告訴我怎么打出a不換行啊。。。
總結(jié)一下,感覺python3還是非常優(yōu)秀的,比python2上了一個檔次,更加方便開發(fā)者了,與python2中異常丑陋的print >> file相比,print的函數(shù)化確實更上一層樓。print也就這樣啦,下面來看看字符串格式化把。
2. 字符串格式化
在python2中一直使用形如: “%s .... %d” % (str, ... , intNum)格式化字符串的。這是python從C系列借鑒過來的語法,但是這種語法對于C這種靜態(tài)語言足夠快足夠好,但是對于擁有很多先進(jìn)數(shù)據(jù)結(jié)構(gòu)的python來說就有點心有余來力不足了。為什么這么說呢?python的幾把利刃:元組,列表,字典,集合等不適合用這種結(jié)構(gòu)表示,這些利刃大多元素用下標(biāo)表示,在這種結(jié)構(gòu)中寫出來很丑陋,不信你試試。
不管怎么樣,這種表示方法還是必須掌握的,大多數(shù)情況下表示起來還是特別快速的。
字符串格式化代碼:
看著這么的多格式,其實常用的也就那么幾個,總結(jié)一些只需要記?。?%d, %s, %f就OK了,其實等需要用的時候查找就可以了,畢竟我們大腦的資源是很寶貴的,可不能全用來記這些死板的東西
再來看看《Python基礎(chǔ)編程》中對格式化輸出的總結(jié):
(1). %字符:標(biāo)記轉(zhuǎn)換說明符的開始
(2). 轉(zhuǎn)換標(biāo)志:-表示左對齊;+表示在轉(zhuǎn)換值之前要加上正負(fù)號;“”(空白字符)表示正數(shù)之前保留空格;0表示轉(zhuǎn)換值若位數(shù)不夠則用0填充
(3). 最小字段寬度:轉(zhuǎn)換后的字符串至少應(yīng)該具有該值指定的寬度。如果是*,則寬度會從值元組中讀出。
(4). 點(.)后跟精度值:如果轉(zhuǎn)換的是實數(shù),精度值就表示出現(xiàn)在小數(shù)點后的位數(shù)。如果轉(zhuǎn)換的是字符串,那么該數(shù)字就表示大字段寬度。如果是*,那么精度將從元組中讀出。
下面來看看python3主打的格式化函數(shù)format().
字符串的format函數(shù)可以通過以下幾個方式靈活的完成字符串格式化:
1. 通過位置標(biāo)號
{0}表示第一個元素, {1}表示第二個元素, {2}表示第三個元素,以此類推。。。
注意在這里的順序是按照format中的參數(shù)順序而言的,在字符串中{0},{1}位置隨便。
2.通過關(guān)鍵字參數(shù)
3.通過屬性和下標(biāo)
但是不知道字典怎么回事,和正常的鍵值索引不一樣,貌似字符串不需要加引號,加引號反而出錯了。。。
各位可以自己試一下。當(dāng)鍵值為整數(shù)的時候可以順利輸出,鍵值為字符串時不需要加‘'。
4.格式化限定符
{0:0.2f} {1:3d},在序號后面加上格式符就可以了,不用加%哦。
5.填充與對齊(更加方便的語法,雖然用到的比較少)
填充常跟對齊一起使用
^、<、>分別是居中、左對齊、右對齊,后面帶寬度
:號后面帶填充的字符,只能是一個字符,不指定的話默認(rèn)是用空格填充
是不是很方便,注意<>^號后面加寬度哦。
好啦,print和格式化的用法基本講完了。大家掌握的怎么樣啦下面還沒完,略微吐槽一下python中矩陣的輸出。。。
在python2.7.6中矩陣輸出:
在python3.4中還是不能正常輸出,總是錯位。。。
因為現(xiàn)在python主打大數(shù)據(jù)領(lǐng)域,所以特別希望python未來能特別為矩陣輸出優(yōu)化一下。
總結(jié)
以上所述是小編給大家介紹的python2與python3的print及字符串格式化小結(jié),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!
新聞標(biāo)題:python2與python3的print及字符串格式化小結(jié)-創(chuàng)新互聯(lián)
分享URL:http://aaarwkj.com/article16/ccojgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站維護(hù)、定制開發(fā)、域名注冊、動態(tài)網(wǎng)站、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容