Python format()格式化輸出方法詳解

2021-02-19 潘多拉的代碼

format() 方法的語法格式如下:

str.format(args)

此方法中,str 用於指定字符串的顯示樣式;args 用於指定要進行格式轉換的項,如果有多項,之間有逗號進行分割。

學習 format() 方法的難點,在於搞清楚 str 顯示樣式的書寫格式。在創建顯示樣式模板時,需要使用{}和:來指定佔位符,其完整的語法格式為:

{ [index][ : [ [fill] align] [sign] [#] [width] [.precision] [type] ] }

注意,格式中用 [] 括起來的參數都是可選參數,即可以使用,也可以不使用。各個參數的含義如下:

index:指定:後邊設置的格式要作用到 args 中第幾個數據,數據的索引值從 0 開始。如果省略此選項,則會根據 args 中數據的先後順序自動分配。

fill:指定空白處填充的字符。注意,當填充字符為逗號(,)且作用於整數或浮點數時,該整數(或浮點數)會以逗號分隔的形式輸出,例如(1000000會輸出 1,000,000)。

align:指定數據的對齊方式,具體的對齊方式如表 1 所示。

表 1 align 參數及含義align含義<數據左對齊。>數據右對齊。=數據右對齊,同時將符號放置在填充內容的最左側,該選項只對數字類型有效。^數據居中,此選項需和 width 參數一起使用。

sign:指定有無符號數,此參數的值以及對應的含義如表 2 所示。

表 2 sign 參數以含義sign參數含義+正數前加正號,負數前加負號。-正數前不加正號,負數前加負號。空格正數前加空格,負數前加負號。#對於二進位數、八進位數和十六進位數,使用此參數,各進位數前會分別顯示 0b、0o、0x前綴;反之則不顯示前綴。

width:指定輸出數據時所佔的寬度。

.precision:指定保留的小數位數。

type:指定輸出數據的具體類型,如表 3 所示。

表 3 type 佔位符類型及含義type類型值含義s對字符串類型格式化。d十進位整數。c將十進位整數自動轉換成對應的 Unicode 字符。e 或者 E 轉換成科學計數法後,再格式化輸出。g 或 G自動在 e 和 f(或 E 和 F)中切換。b將十進位數自動轉換成二進位表示,再格式化輸出。o將十進位數自動轉換成八進位表示,再格式化輸出。x 或者 X將十進位數自動轉換成十六進位表示,再格式化輸出。f 或者 F轉換為浮點數(默認小數點後保留 6 位),再格式化輸出。%顯示百分比(默認顯示小數點後 6 位)。

【例 1】

str="網站名稱:{:>9s}\t網址:{:s}"

print(str.format("C語言中文網","c.biancheng.net"))

輸出結果為:

Traceback (most recent call last):

File "C:\Users\mengma\Desktop\1.py", line 2, in

print(str.format("C語言中文網","c.biancheng.net"))

ValueError: cannot switch from automatic field numbering to manual field specification

【例 2】

在實際開發中,數值類型有多種顯示需求,比如貨幣形式、百分比形式等,使用 format() 方法可以將數值格式化為不同的形式。

#以貨幣形式顯示

print("貨幣形式:{:,d}".format(1000000))

#科學計數法表示

print("科學計數法:{:E}".format(1200.12))

#以十六進位表示

print("100的十六進位:{:#x}".format(100))

#輸出百分比形式

print("0.01的百分比表示:{:.0%}".format(0.01))

輸出結果為:

貨幣形式:1,000,000

科學計數法:1.200120E+03

100的十六進位:0x64

0.01的百分比表示:1%

請識別以下二維碼關注

部分文字、圖片來源於網絡,如涉及版權請聯繫刪除。

相關焦點

  • 小瘋談python:字符串的拼接與格式化輸出
    因此為了使結果具有更好的可讀性和靈活性,字符串的格式化輸出就顯得格外重要。例如,我現在接受了用戶的輸入的年齡信息,如果我直接將這個年齡列印在控制臺上那麼對於需要這些數據的人來說可能不友好,因為他們可能不知道這個數據是什麼意思,也就是說列印出來到數據不具有泛讀性。同樣的在字符串中我們無法直接使用代碼中的變量因為python解釋器會默認字符串內的元素為字符。
  • python字符串格式化深入詳解(四種方法)
    前言:本文詳細整理了python字符串格式化的幾種方式。
  • Python2.6版本以後的format()方法格式化字符串
    第七十九節:format()方法格式化字符串Python的版本進化到2.6版以後,創造了format()方法使用字符串對象對字符串進行格式化。format()方法格式化字符串的語法是這樣的:str.format(args)它的參數說明如下:str用於指定字符串模板;args就是要轉換的項,有多個項時,使用逗號分隔。
  • python格式化字符串研究
    前言與隊友交流時提及python的格式化字符串漏洞,這個漏洞之前接觸不多,所以寫篇文章從基礎部分仔細研究了研究。python環境是python3.7。Python3裡的格式化字符串python3中的格式化字符串主要有以下兩種形式:"test %s" % ('test')"test {0}".format('test')這兩個語句的輸出都是test test。
  • 如何使用Python 進行格式化輸出?
    ,並沒有對比過這些輸出有什麼異同,也並不清楚該用哪種格式化輸出方式比較合適,因此,今天就要幫大家梳理下Python的格式化輸出方式。目前,Python 總共支持三種格式化輸出方式,分別是:%-formatting 格式化輸出方式str.format 格式化輸出方式f-Strings 格式化輸出方式其中前兩種是比較老的格式化輸出方式,這兩種方式會簡單介紹一下,當你下次看到這類代碼的時候,能夠支持它是格式化輸出就行了,但你自己在編寫代碼的時候,強烈建議使用第三種格式化輸出方式
  • 左右用R右手Python系列——字符串格式化輸出
    在R語言中,字符串格式化輸出除了以上常見操作之外,還有一些非常重要的需求,比如格式化輸出百分比,格式化輸出日期時間等。(據說繼承自C/C++),該函數的使用可以大大簡化字符串格式化輸出的操作流程。I'm %d year old" % ('raindu',26))以上使用print函數輸出了寶寶的大名和芳齡~_~,python中的字符串格式符規則是,在要輸出的主句中對應位置插入格式符,在句尾之後使用 % 連接一個元組,元組內提供主句所有的待格式化的字符串,有幾個需要格式化的字符串就需要在元組中提供幾個字符串對象,而且順序一定要與待格式化的字符串在主句的位置一一對應。
  • python實踐分享:格式化字符串時使用.format方式還是「%」
    Python中內置的%操作符和.format方式都可用于格式化字符串。先來看看這兩種具體格式化方法的基本語法形式和常見用法。%操作符根據轉換說明符所規定的格式返回一串格式化後的字符申,轉換說明符的基本形式為:%[轉換標記][寬度[.精確度]]轉換類型。
  • Python格式化字符串(格式化輸出)
    ,比如格式化輸出,這就是本節要講解的內容。print() 函數使用以%開頭的轉換說明符對各種類型的數據進行格式化輸出,具體請看下表。【實例】輸出一個整數:age = 8print("C語言中文網已經%d歲了!" % age)運行結果:C語言中文網已經8歲了!在 print() 函數中,由引號包圍的是格式化字符串,它相當於一個字符串模板,可以放置一些轉換說明符(佔位符)。
  • 史上最快的字符串格式化庫{fmt}及std::format
    在很多場合,字符串格式化的性能越高越好,比如說伺服器的日誌模塊,每秒鐘要打大量的日誌,性能提高一點點就有很明顯的效果。之前在這塊我也是一直用vsnprintf。我曾經見人用boost::format翻了車。boost::format是C++眾多字符串格式化的庫中非常非常慢的一個。所以不要被boost的名頭騙了。
  • Python中format函數用法
    format優點format是python2.6新增的一個格式化字符串的方法,相對於老版的%格式方法,它有很多優點。1.不需要理會數據類型的問題,在%方法中%s只能替代字符串類型2.單個參數可以多次輸出,參數順序可以不相同3.填充方式十分靈活,對齊方式十分強大4.官方推薦用的方式,%方式將會在後面的版本被淘汰format應用一:填充(1)通過位置來填充字符串print("hello {0} i am {1}".format
  • Python的神奇魔法:鞏固熟練運用字符串拼接序列類型轉化格式化
    Python我們既然學習了字符串(str)的拼接,序列類型的相互轉化,以及格式化化輸出的內容。今天我們來一起研究一下如何熟練運用,怎麼將需求完美展現。字符串拼接最簡單的加法第二種方法:格式化字符串(str)的方法,即:%s.
  • format,不只是格式化
    細心的讀者可能發現了,在 Python 中有一個叫做format的方法(屬於字符串類),而在 CL 則有一個叫做format的函數。並且,從上面的例子來看,它們都負責生成格式化的字符串,那麼它們有相似之處嗎?答案是否定的,CL 的format簡直就是格式化列印界的一股泥石流。
  • 一文詳解format()函數
    自python2.6開始,新增了一種格式化字符串的函數str.format(),此函數可以快速處理各種字符串。
  • Python專題 | (三)注釋、變量與輸出
    至於用什麼編程方法查看數據類型,講解完輸出函數print()會給大家介紹的~還有一種數據類型生活中不太常見,但是編程中經常會用到,就是bool類型(布爾類型),布爾類型一般用來表示一種對立關係,只有 True 和 False 兩種情況。「對」與「錯」、「是」與「否」,都可以使用bool類型來表達。
  • Python中如何實現數字的格式化輸出?
    需要將數字格式化後輸出,並控制數字的位數、對齊、千位分隔符和其他的細節。 1. 這種格式化方法也是可行的,不過比更加先進的format() 要差一點。
  • Python-字符串格式化
    前言Python2.6 開始,新增了一種格式化字符串的函數 str.format(),它增強了字符串格式化的功能。相對於老版的%格式方法,它有很多優點。1.在%方法中%s只能替代字符串類型,而在format中不需要理會數據類型;2.單個參數可以多次輸出,參數順序可以不相同;3.填充方式十分靈活,對齊方式十分強大;4.官方推薦用的方式,%方式將會在後面的版本被淘汰。
  • Python字符串類型的格式化
    字符串格式化用於解決字符串和變量同時輸出時的格式安排。字符串是程序向控制臺、網絡、文件等介質輸出運算結果的主要形式之一,為了能提供更好的可讀性和靈活性,字符串類型的格式化是運用字符串類型的重要內容之一。Python語言同時支持兩種字符串格式化方法,我們本課題要學習的是format()格式化方法,採用format()方法進行字符串格式化。
  • Python如此簡單,用格式化輸出拍馬屁,味道都不一樣
    NO,NO,NO,這個輸出方法看起來也太不Python了吧,還需要用加號連接,感覺好蠢萌,怎麼改進一下?機智的我馬上想起來了轉義字符,常用的轉義字符,一個是%d 代表整數,一個是%f代表小數,還有一個%s代表字符串,這裡顯然用整數。這樣的代碼看起來要比剛才舒服多了,也有點Python的意思了。
  • Python字符串的45個方法詳解
    若指定長度小於字符串長度,則直接輸出原字符串。五、字符串格式化17、format()描述:Python2.6 開始,新增了一種格式化字符串的函數 str.format()>返回字符串的格式化版本。在Python3中使用format和format_map方法都可以進行字符串格式化,但format是一種所有情況都能使用的格式化方法,format_map僅使用於字符串格式中可變數據參數來源於字典等映射關係數據時才可以使用。
  • python內置函數format的使用方法
    前言其實在Java中,我們已經解除過format的使用,例如:當我們要把昨天的訂單金額統計後顯示到前臺時,由於資料庫存儲的是double格式的數據,在統計完昨天的訂單金額後仍然是double類型的數據,但是,之前遇到過此類問題的小夥伴都知道,這個訂單額有時候會喪失精度,變成一個很長的