B1 Python字串格式化

2021-09-02 19:00:51 字數 4909 閱讀 5200

python的字串格式化有兩種方式:%格式符方式,format方式

%[(name)][flags][width].[precision]typecode

width    可選,占有寬度

.precision   可選,小數點後保留的位數

typecode    必選

注:python中百分號格式化是不存在自動將整數轉換成二進位制表示的方式

(name) 可選,用於選擇指定的key

a =

"%(name)s-----%(age)d "

%print

(a)

執行結果:

xx-----20

flags  可選,可供選擇的值有:

width  可選,占有寬度

name佔10位,+,右對齊,age佔10位,-,左對齊

b =

"%(name)+10s————————%(age)-10d————————"

%print

(b)執行結果:

xx————————20        ————————

空格,右對齊

0,用0填充空白處

c =

"------%(year) d******%(age)010d "

%print

(c)執行結果:

------ 2016******-000000020

.precision   可選,小數點後保留的位數

只保留兩位小數

d =

'--------%(p).2f'

% d1 =

'--------%(p)f'

%print

(d)print

(d1)

執行結果:

--------1.23

--------1.234560

typecode  必選

e ='***%c***%o***%x'

%(65,15,15)

print

(e)執行結果:

***a***17***f

f =

'-----%(num)e------%(num)e'

%print

(f)執行結果:

-----1.000000e+09------1.000000e+09

g =

'-----%(num)g------%(num1)g'

%print

(g)執行結果:

-----1e+09------100

s =

'aaa %'

print

(s) s1 =

'aaa %s %%'

%('bbb'

)print

(s1)

執行結果:

aaa %

aaa bbb % 

[[fill]align][sign][#][0][width][,][.precision][type]

sign   【可選】有無符號數字

#   【可選】對於二進位制、八進位制、十六進製制,如果加上#,會顯示 0b/0o/0x,否則不顯示

,   【可選】為數字新增分隔符,如:1,000,000

width  【可選】格式化位所佔寬度

.precision 【可選】小數字保留精度

type  【可選】格式化型別

fill           【可選】空白處填充的字元

align        【可選】對齊方式(需配合width使用)

width 【可選】格式化位所佔寬度

s1 =

'-------'

.format(

'welcome'

)print

(s1)

s2 =

'-------'

.format(

'welcome'

)print

(s2)

s3 =

'-------'

.format(

'welcome'

)print

(s3)

執行結果:

---******welcome*******----

---*************welcome----

---welcome*************----

#【可選】對於二進位制、八進位制、十六進製制,如果加上#,會顯示 0b/0o/0x,否則不顯示

三種方法表示

a1 =

"numbers: ,,,,, ,"

.format(15, 15, 15, 15, 15, 15.87623,65)

a2 =

"numbers: ,,,,, ,"

.format(15,65)

a3 =

"numbers: ,,,,, ,"

.format(num=15,cc=65)

print

(a1)

print

(a2)

print

(a3)

執行結果:

numbers: 1111,17,15,f,f, 1587.623000%,a

numbers: 1111,17,15,f,f, 1500.000000%,a

numbers: 1111,17,15,f,f, 1500.000000%,a

,      【可選】為數字新增分隔符,如:1,000,000

.precision 【可選】小數字保留精度

n =

'-------'

.format(10000000)

n1 =

'-------'

.format(1.2345)

print

(n)print

(n1)

執行結果:

---10,000,000----

---1.23----

format常用格式化

tp1 =

"i am {}, age {}, {}"

.format(

"seven"

, 18,

'alex'

) tp2 =

"i am {}, age {}, {}"

.format(*[

"seven"

, 18,

'alex'

]) tp3 =

"i am , age , really "

.format(

"seven"

, 18)

tp4 =

"i am , age , really "

.format(*[

"seven"

, 18])

tp5 =

"i am , age , really "

.format(name=

"seven"

, age=18)

tp6 =

"i am , age , really "

.format(**)

tp7 =

"i am , age , really "

.format([1, 2, 3], [11, 22, 33])

tp8 =

"i am , age , money "

.format(

"seven"

, 18, 88888.1)

tp9 =

"i am , age "

.format(*[

"seven"

, 18])

tp10 =

"i am , age "

.format(name=

"seven"

, age=18)

tp11 =

"i am , age "

.format(**)

print

(tp1)

print

(tp2)

print

(tp3)

print

(tp4)

print

(tp5)

print

(tp6)

print

(tp7)

print

(tp8)

print

(tp9)

print

(tp10)

print

(tp11)

執行結果:

i am seven, age 18, alex

i am seven, age 18, alex

i am seven, age 18, really seven

i am seven, age 18, really seven

i am seven, age 18, really seven

i am seven, age 18, really seven

i am 1, age 2, really 3

i am seven, age 18, money 88888.100000

i am seven, age 18

i am seven, age 18

i am seven, age 18

Python 字串格式化

字串格式化 s 格式化為字串 format hello,s.s enough for ya?values world hot print format values hello,world.hot enough for ya?f 格式化為實數 浮點數 format pi with three dec...

python字串格式化

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

Python字串格式化

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