最近一直在用python寫程序,對于python的print一直很惱火,老是不按照預(yù)期輸出。在python2中print是一種輸出語句,和if語句,while語句一樣的東西,在python3中為了填補(bǔ)python2的各種坑,將print變?yōu)楹瘮?shù),因此導(dǎo)致python3中print的一些使用和python2很不一樣。同時,python3大改python2中的字符串格式化,主推format()函數(shù)格式,用法很是靈活,讓老用戶一時摸不著頭腦。今天特來總結(jié)一樣print和format,也希望能幫助大家徹底理解它們。
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來說就有點(diǎn)心有余來力不足了。為什么這么說呢?python的幾把利刃:元組,列表,字典,集合等不適合用這種結(jié)構(gòu)表示,這些利刃大多元素用下標(biāo)表示,在這種結(jié)構(gòu)中寫出來很丑陋,不信你試試。
不管怎么樣,這種表示方法還是必須掌握的,大多數(shù)情況下表示起來還是特別快速的。
字符串格式化代碼:
看著這么的多格式,其實常用的也就那么幾個,總結(jié)一些只需要記?。?%d, %s, %f就OK了,其實等需要用的時候查找就可以了,畢竟我們大腦的資源是很寶貴的,可不能全用來記這些死板的東西
新聞熱點(diǎn)
疑難解答