python中神奇的格式化輸出

2021-06-22 16:32:55 字數 2047 閱讀 8099

python一共有兩種格式化輸出語法,

一種是類似於c語言printf的方式,稱為 formatting expression

>>> '%s %d-%d' % ('hello', 7, 1)

'hello 7-1'

另一種是類似於c#的方式,稱為string formatting method calls

>>> ' :'.format('hello', '1', '7')

'hello 1:7'

第一種方式可以指定浮點數的精度,例如

>>> '%.3f' % 1.234567869

'1.235'

但是當**在執行中如何動態地通過引數來指定浮點數的精度呢?

python的神奇之處在於它又提供了一種非常方便的語法。只需要在 typecode(這裡是f)之前加乙個 *,浮點數的精度就用它前面的數字來指定。

>>> for i in range(5):

... '%.*f' % (i, 1.234234234234234)

...

'1''1.2'

'1.23'

'1.234'

'1.2342'

通過輸出結果可以看出,精度都是在執行時動態指定,這樣就省去了格式化字串的拼湊。

使用 string formatting method calls 可以更簡潔地完成功能。

>>> for i in range(5):

... 'f}'.format(1 / 3.0, i)

...

'0''0.3'

'0.33'

'0.333'

'0.3333'

django提供的模板語言,可以讓我們通過乙個dict(字典)把python變數繫結的html檔案中,其實利用python的格式化輸出我們也可以僅僅做乙個文字替換功能。

>>> replay = """

... hello world cup...

... germany vs brazil

... %(germany)d : %(brazil)d"""

>>> print(replay % )

hello world cup...

germany vs brazil

7 : 1

還可以這樣玩

>>> germany = 7

>>> brazil = 1

>>> '%(germany)d : %(brazil)d' % vars()

'7 : 1'

>>> 'my  runs '.format(sys, )

'my pc runs linux'

>>> 'my runs '.format(sys=sys, map=)

'my pc runs linux'

>>> somelist = list('spam')

>>> 'first=, third='.format(somelist)

'first=s, third=a'

>>> 'first=, last='.format(somelist[1], somelist[-1])

'first=p, last=m'

>>> parts = somelist[0], somelist[-1], somelist[1:-1]

>>> 'first=, last=, middle='.format(*parts)

"first=s, last=m, middle=['p', 'a']"

>>>

python格式化輸出

原文 在python中也有類似於c中的printf 的格式輸出標記。在python中格式化輸出字串使用的是 運算子,通用的形式為 格式標記字串 要輸出的值組 其中,左邊部分的 格式標記字串 可以完全和c中的一致。右邊的 值組 如果有兩個及以上的值則需要用小括號括起來,中間用短號隔開。重點來看左邊的部...

python 格式化輸出

usr bin python coding utf 8 可以指定所需長度的字串的對齊方式 預設 左對齊 右對齊 中間對齊 只用於數字 在小數點後進行補齊 print 1 t format wangyu print 2 t format 1.1415926 print 3 t format 1.141...

Python格式化輸出

python時間輸出格式化 python格式化日期時間的函式為datetime.datetime.strftime 由字串轉為日期型的函式為 datetime.datetime.strptime 兩個函式都涉及日期時間的格式化字串,列舉如下 舉乙個例子 ebay中時間格式為 sep 21 09 16...