python字串格式化

2021-09-28 01:52:07 字數 2342 閱讀 8206

字串格式化有兩種方式:百分號方式、format方式。

其中,百分號方式比較老,而format方式是比較先進的,企圖替代古老的方式,目前兩者共存。

1、百分號方式

格式:%[(name)][flags][width].[precision]typecode

width 可選,占有寬度

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

typecode 必選

例子:

>>

> s =

'hello, %s!'

%'python'

>>

> s

'hello, python!'

>>

> s =

'hello, %s, %d!'%(

'python'

,2018

)>>

> s

'hello, python, 2018!'

>>

> s =

'hello, %(name)s, %(year)d!'

%>>

> s

'hello, python, 2018!'

>>

> s =

'hello, %(name)+10s, %(year)-10d!'

%>>

> s

'hello, python, 2018 !'

>>

> s =

'hello, %(name)s, %(year).3f!'

%>>

> s

'hello, python, 2018.000!'

%r 與 %s 區別:

%r 用來做 debug 比較好,因為它會顯示變數的原始資料(raw data),而其它的符號則是用來向使用者顯示輸出的。

>>

> a =

'sunday'

>>

>

print

("today is %s"

% a)

today is sunday

>>

>

print

("today is %r"

% a)

today is

'sunday'

# 格式化部分用單引號輸出

>>

>

from datetime import datetime

>>

> d = datetime.now(

)>>

>

print

('%s'

% d)

2018-09

-1008:

52:00.769949

>>

>

print

('%r'

% d)

datetime.datetime(

2018,9

,10,8

,52,0

,769949

)# 可以看見與上面輸出存在明顯的區別

2、format方式

>>

> s =

'hello, {}, {}'

.format

('python'

,2018

)>>

> s

'hello, python, 2018'

>>

> s =

'hello, , , hi, '

.format

('python'

,2018

)>>

> s

'hello, python, 2018, hi, python'

>>

> s =

'hello, , , hi, '

.format

(name=

'python'

, year=

2018

)>>

> s

'hello, python, 2018, hi, python'

>>

> s =

'hello, , , hi, '

.format

('python'

,2018

,9.7

)>>

> s

'hello, python, 2018, hi, 9.700000'

使用百分號和format為浮點數保留指定位數的小數,參考:python保留指定位數的小數

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中的一致。右邊的 值組 如果有兩個及以上的值則需要用小括號括起來,中間用短號隔開。重點來看左邊的部分。左邊部分的最簡單...