国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Python變量格式化輸出實現(xiàn)原理解析

瀏覽:20日期:2022-07-14 17:37:00

print() 函數(shù)使用以 % 開頭的轉(zhuǎn)換說明符對各種類型的數(shù)據(jù)進行格式化輸出。

轉(zhuǎn)換說明符(Conversion Specifier)只是一個占位符(也稱為格式化操作符),它會被后面表達式(變量、常量、數(shù)字、字符串、加減乘除等各種形式)的值代替。

轉(zhuǎn)換說明符 解釋 %d、%i 轉(zhuǎn)換為帶符號的十進制整數(shù) %o 轉(zhuǎn)換為帶符號的八進制整數(shù) %x、%X 轉(zhuǎn)換為帶符號的十六進制整數(shù) %e 轉(zhuǎn)化為科學(xué)計數(shù)法表示的浮點數(shù)(e 小寫) %E 轉(zhuǎn)化為科學(xué)計數(shù)法表示的浮點數(shù)(E 大寫) %f、%F 轉(zhuǎn)化為十進制浮點數(shù) %g 智能選擇使用 %f 或 %e 格式 %G 智能選擇使用 %F 或 %E 格式 %c 格式化字符及其 ASCII 碼 %r 使用 repr() 函數(shù)將表達式轉(zhuǎn)換為字符串 %s 使用 str() 函數(shù)將表達式轉(zhuǎn)換為字符串 %% 輸出%

在 print() 函數(shù)中,由引號包圍的是格式化字符串,它相當于一個字符串模板,可以放置一些轉(zhuǎn)換說明符(占位符)。

中間的%是一個分隔符,它前面是格式化字符串,后面是要輸出的表達式。

當然,格式化字符串中也可以包含多個轉(zhuǎn)換說明符,這個時候也得提供多個表達式,用以替換對應(yīng)的轉(zhuǎn)換說明符,多個表達式必須使用小括號( )包圍起來。

舉例

name = ’小明’print('我的名字叫 %s,請多多關(guān)照!' % name) # 我的名字叫 小明,請多多關(guān)照!

student_no = 1print('我的學(xué)號是 %06d' % student_no)# 我的學(xué)號是 000001

scale = 0.2print('數(shù)據(jù)比例是 %.02f%%' % (scale * 100))# 數(shù)據(jù)比例是 20.00%指定最小輸出寬度

當使用轉(zhuǎn)換說明符時,可以使用下面的格式指定最小輸出寬度(至少占用多少個字符的位置):

%10d 表示輸出的整數(shù)寬度至少為 10%20s 表示輸出的字符串寬度至少為 20n = 1234567print('n(10):%10d.' % n)print('n(5):%5d.' % n)url = 'https://www.baidu.com/python/'print('url(35):%35s.' % url)print('url(20):%20s.' % url)

執(zhí)行結(jié)果為:

n(10): 1234567.n(5):1234567.url(35): https://www.baidu.com/python/.url(20):https://www.baidu.com/python/.

從執(zhí)行結(jié)果可以發(fā)現(xiàn),對于整數(shù)和字符串,當數(shù)據(jù)的實際寬度小于指定寬度時,會在左側(cè)以空格補齊;當數(shù)據(jù)的實際寬度大于指定寬度時,會按照數(shù)據(jù)的實際寬度輸出。

指定對齊方式

默認情況下,print() 輸出的數(shù)據(jù)總是右對齊的。

當數(shù)據(jù)不夠?qū)挄r,數(shù)據(jù)總是靠右邊輸出,而在左邊補充空格以達到指定的寬度。

Python 允許在最小寬度之前增加一個標志來改變對齊方式,Python支持的標志如下。

標志 說明 - 指定左對齊 + 表示輸出的數(shù)字總要帶著符號;整數(shù)帶+,負數(shù)帶-。 0 表示寬度不足時補充 0,而不是補充空格。

幾點說明:

對于整數(shù),指定左對齊時,在右邊補0是沒有效果的,因為這樣會改變整數(shù)的值。 對于小數(shù),以上三個標志可以同時存在。 對于字符串,只能使用-標志,因為符號對于字符串沒有意義,而補 0 會改變字符串的值。

例子:

n = 123456# %09d 表示最小寬度為9,左邊補0print('n(09):%09d' % n)# %+9d 表示最小寬度為9,帶上符號print('n(+9):%+9d' % n)f = 140.5# %-+010f 表示最小寬度為10,左對齊,帶上符號print('f(-+0):%-+010f' % f)s = 'Hello'# %-10s 表示最小寬度為10,左對齊print('s(-10):%-10s.' % s)

執(zhí)行結(jié)果

n(09):000123456n(+9): +123456f(-+0):+140.500000s(-10):Hello .

指定小數(shù)精度

對于小數(shù)(浮點數(shù)),print() 還允許指定小數(shù)點后的數(shù)字位數(shù),也即指定小數(shù)的輸出精度。

精度值需要放在最小寬度之后,中間用點號.隔開;也可以不寫最小寬度,只寫精度。具體格式如下:

%m.nf%.nf

m 表示最小寬度,n 表示輸出精度,. 是必須存在的。

請看下面的代碼:

f = 3.141592653# 最小寬度為8,小數(shù)點后保留3位print('%8.3f' % f)# 最小寬度為8,小數(shù)點后保留3位,左邊補0print('%08.3f' % f)# 最小寬度為8,小數(shù)點后保留3位,左邊補0,帶符號print('%+08.3f' % f)

運行結(jié)果:

3.1420003.142+003.142

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 枣阳市| 香港 | 海盐县| 柳州市| 工布江达县| 黑山县| 富顺县| 高要市| 渝中区| 唐海县| 苗栗市| 固原市| 长沙市| 新密市| 海晏县| 固原市| 阜新市| 惠州市| 托克逊县| 施甸县| 和田县| 罗城| 富宁县| 林西县| 临猗县| 沂水县| 来凤县| 德江县| 株洲县| 宿松县| 孟州市| 丹阳市| 广丰县| 吉林市| 本溪| 靖江市| 汝南县| 越西县| 鹤峰县| 四川省| 屯门区|