這期內(nèi)容當中小編將會給大家?guī)碛嘘PPython格式化輸出有哪些方式,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)建站致力于互聯(lián)網(wǎng)品牌建設與網(wǎng)絡營銷,包括做網(wǎng)站、成都網(wǎng)站建設、SEO優(yōu)化、網(wǎng)絡推廣、整站優(yōu)化營銷策劃推廣、電子商務、移動互聯(lián)網(wǎng)營銷等。創(chuàng)新互聯(lián)建站為不同類型的客戶提供良好的互聯(lián)網(wǎng)應用定制及解決方案,創(chuàng)新互聯(lián)建站核心團隊十載專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗,為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設服務,在網(wǎng)站建設行業(yè)內(nèi)樹立了良好口碑。
Python 提供了“%”對各種類型的數(shù)據(jù)進行格式化輸出,例如如下代碼:
price = 108 print ("the book's price is %s" % price)
上面程序中的 print 函數(shù)包含以下三個部分,第一部分是格式化字符串(相當于字符串模板),該格式化字符串中包含一個“%s”占位符,它會被第三部分的變量或表達式的值代替;第二部分固定使用“%”作為分隔符。
格式化字符串中的“%s”被稱為轉(zhuǎn)換說明符(Conversion Specifier),其作用相當于一個占位符,它會被后面的變量或表達式的值代替。“%s”指定將變量或值使用 str() 函數(shù)轉(zhuǎn)換為字符串。
如果格式化字符串中包含多個“%s”占位符,第三部分也應該對應地提供多個變量,并且使用圓括號將這些變量括起來。例如如下代碼:
user = "Charli" age = 8 # 格式化字符串有兩個占位符,第三部分提供2個變量 print("%s is a %s years old boy" % (user , age))
在格式化字符串中難道只能使用“%s”嗎?還有其他轉(zhuǎn)換說明符嗎?如果只有“%s”這一種形式,Python 的格式化功能未免也太單一了。
實際上, Python 提供了如下所示的轉(zhuǎn)換說明符:
轉(zhuǎn)換說明符 | 說明 |
---|---|
%d,%i | 轉(zhuǎn)換為帶符號的十進制形式的整數(shù) |
%o | 轉(zhuǎn)換為帶符號的八進制形式的整數(shù) |
%x,%X | 轉(zhuǎn)換為帶符號的十六進制形式的整數(shù) |
%e | 轉(zhuǎn)化為科學計數(shù)法表示的浮點數(shù)(e 小寫) |
%E | 轉(zhuǎn)化為科學計數(shù)法表示的浮點數(shù)(E 大寫) |
%f,%F | 轉(zhuǎn)化為十進制形式的浮點數(shù) |
%g | 智能選擇使用 %f 或 %e 格式 |
%G | 智能選擇使用 %F 或 %E 格式 |
%c | 格式化字符及其 ASCII 碼 |
%r | 使用 repr() 將變量或表達式轉(zhuǎn)換為字符串 |
%s | 使用 str() 將變量或表達式轉(zhuǎn)換為字符串 |
當使用上面的轉(zhuǎn)換說明符時,可指定轉(zhuǎn)換后的最小寬度,例如如下代碼:
num = -28 print("num is: %6i" % num) print("num is: %6d" % num) print("num is: %6o" % num) print("num is: %6x" % num) print("num is: %6X" % num) print("num is: %6s" % num)
運行上面代碼,可以看到如下輸出結果:
num is: -28 num is: -28 num is: -34 num is: -1c num is: -1C num is: -28
從上面的輸出結果可以看出,此時指定了字符串的最小寬度為 6,因此程序轉(zhuǎn)換數(shù)值時總寬度為 6,程序自動在數(shù)值前面補充了三個空格。
在默認情況下,轉(zhuǎn)換出來的字符串總是右對齊的,不夠?qū)挾葧r左邊補充空格。Python 也允許在最小寬度之前添加一個標志來改變這種行為,Python 支持如下標志:
-:指定左對齊。
+:表示數(shù)值總要帶著符號(正數(shù)帶“+”,負數(shù)帶“-”)。
0:表示不補充空格,而是補充 0。
例如如下代碼
num2 = 30 # 最小寬度為0,左邊補0 print("num2 is: %06d" % num2) # 最小寬度為6,左邊補0,總帶上符號 print("num2 is: %+06d" % num2) # 最小寬度為6,右對齊 print("num2 is: %-6d" % num2)
運行上面代碼,可以看到如下輸出結果:
num2 is: 000030 num2 is: +00030 num2 is: 30
對于轉(zhuǎn)換浮點數(shù),Python 還允許指定小數(shù)點后的數(shù)字位數(shù):如果轉(zhuǎn)換的是字符串,Python 允許指定轉(zhuǎn)換后的字符串的最大字符數(shù)。這個標志被稱為精度值,該精度值被放在最小寬度之后,中間用點 () 隔開。例如如下代碼:
my_value = 3.001415926535 # 最小寬度為8,小數(shù)點后保留3位 print("my_value is: %8.3f" % my_value) # 最小寬度為8,小數(shù)點后保留3位,左邊補0 print("my_value is: %08.3f" % my_value) # 最小寬度為8,小數(shù)點后保留3位,左邊補0,始終帶符號 print("my_value is: %+08.3f" % my_value) the_name = "Charlie" # 只保留3個字符 print("the name is: %.3s" % the_name) # 輸出Cha # 只保留2個字符,最小寬度10 print("the name is: %10.2s" % the_name)
運行上面代碼,可以看到如下輸出結果:
my_value is: 3.001 my_value is: 0003.001 my_value is: +003.001 the name is: Cha the name is: Ch
上述就是小編為大家分享的Python格式化輸出有哪些方式了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。