Python中應該使用%還是format來格式化字串?

西柚_w發表於2020-08-10

Python中格式化字串目前有兩種陣營:%和format,我們應該選擇哪種呢?

自從Python2.6引入了format這個格式化字串的方法之後,我認為%還是format這根本就不算個問題。不信你往下看。

Python中應該使用%還是format來格式化字串?

上面的程式碼很明顯會丟擲一個如下的TypeError:

Python中應該使用%還是format來格式化字串?

像這類格式化的需求我們需要寫成下面醜陋的格式才行:

Python中應該使用%還是format來格式化字串?

而使用format就不會存在上面的問題:

Python中應該使用%還是format來格式化字串?

很顯然,上面這一個理由就已經足夠讓你在以後的專案中使用format了。

新特性

在Python3.6中加入了f-strings:

Python中應該使用%還是format來格式化字串?

常用的format用法

透過位置

Python中應該使用%還是format來格式化字串?

透過關鍵字

Python中應該使用%還是format來格式化字串?

透過物件屬性

Python中應該使用%還是format來格式化字串?

透過下標

Python中應該使用%還是format來格式化字串?

填充與對齊

填充常跟對齊一起使用

^、<、>分別是居中、左對齊、右對齊,後面頻寬度

:號後面帶填充的字元,只能是一個字元,不指定的話預設是用空格填充。

Python中應該使用%還是format來格式化字串?

補充一個字串自帶的zfill()方法:

Python zfill()方法返回指定長度的字串,原字串右對齊,前面填充0。

zfill()方法語法:str.zfill(width)

引數width指定字串的長度。原字串右對齊,前面填充0。

返回指定長度的字串。

Python中應該使用%還是format來格式化字串?

精度與型別f

精度常跟型別f一起使用。

Python中應該使用%還是format來格式化字串?

其中.2表示長度為2的精度,f表示float型別。

其他進位制

主要就是進位制了,b、d、o、x分別是二進位制、十進位制、八進位制、十六進位制。

Python中應該使用%還是format來格式化字串?

千位分隔符

Python中應該使用%還是format來格式化字串?


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69981174/viewspace-2710565/,如需轉載,請註明出處,否則將追究法律責任。

相關文章