格式化字串時盡量使用format 方式而不是

2021-09-26 10:29:55 字數 2281 閱讀 8190

python中內建的%操作符format()方式都可以用於格式化字串。

%操作符根據轉換說明符所規定的格式返回一串格式化後的字串,轉換說明符的基本形式為:%[轉換標記][寬度[.精確度]]轉換型別

%操作符格式化字串時有如下幾種常見用法:

print

("the %s is a kind of %s."%(

,'fruit'))

person =

print

("the address of %(name)s is %(address)s."

% person)

# the address of watkins is siso.

print

("the age of is "

.format

(name=

'watkins'

, age=5)

)# the age of watkins is 05

format()方法格式字串的呼叫格式為:".format()"。當前支援的轉換標誌字元包括r(repr)、s(str)和a(ascii)。

格式說明符常用的呼叫方式為:[[填充符]對齊方式][符號][#][0][寬度][,][.精確度][轉換型別]

字串格式設定中的轉換型別型別

含義b將整數表示為二進位制數

c將整數解讀為unicode碼點

d將整數視為十進位制數來處理,這是整數預設使用的說明符

e使用科學表示法來表示小數(用e來表示指數)

f將小數表示為定點數

g自動在定點表示法和科學表示法之間做出選擇。這是預設用於小數的說明符,但在預設情況下至少有1位小數

o將整數表示為八進位制數

s保持字串的格式不變,這是預設用於字串的說明符

x將整數表示為十六進製制數並使用小寫字母

%將數表示為百分比值

format()方法幾種常見的用法如下:

# 替換字段沒有名稱可將索引用作名稱,且可無需按順序排列

print

(" "

.format

('be'

,'not'

,'or'

,'to'))

# to be or not to be

# 如果變數和替換字段同名,可使用f字串——在字串前面加上f

from math import e

print

(f"euler's constant is roughly "

)# euler's constant is roughly 02.72

# 要指定左對齊、右對齊和居中,可分別使用<、>和^

print(""

.format

(pi=

3.141592))

# $$3.14$$

print(""

.format

(sale=

20190328.1227))

# 20,190,328.12

# 井號選項會觸發另一種轉換方式,轉換細節隨型別而異。

print(""

.format

(bn=28)

)# 0b11100

為什麼要盡量使用format方式而不是%操作符來格式化字串:

# 使用%方法格式化元組,要注意(name, )後面的符號

name =

("watkins"

,"uself"

)# typeerror: not all arguments converted during string formatting

print

("the names is %s"

%(name)

)print

("the names is %s"

%(name,))

# the names is ('watkins', 'uself')

(最近更新:2023年04月11日)

python筆記 字串格式化函式format

自python2.6開始,新增了一種格式化字串的函式str.format 通過 和 來代替 通過位置 in 1 format cqk 20 out 1 cqk,20 in 2 format cqk 20 out 2 cqk,20 in 3 format cqk 20 out 3 20,cqk,20 ...

字串格式化

sprintf snprintf snprintf std stringstream std strstream boost lexical cast boost format cstring format 1 sprintf 使用 sprintf 不安全,輕則破壞資料的準確性,重則程式崩潰。請看下...

格式化字串

通常在使用字串的時候,會對字串進行格式化,然後輸出或呼叫 一般我們使用替換標記對字串進行格式化 string str1 string.format add is 1,2,3 而且在c 中的替換標記可以以任意順序和次數出現在格式化字串中,但替換值是按順序排的,而且替換標記不能超出索引範圍 string...