Python 格式化字串

2021-10-02 11:52:22 字數 1962 閱讀 5516

@讓python**更優雅的【格式化字串】toc

我們在用+拼接字串和變數的時候,常常需要考慮變數是什麼型別的資料,如果不是字串型別,還先需要str()函式轉換。並且一句話常常要拼接成好幾個部分,然後我們要考慮每一對引號』 '的起始位置,好麻煩,相信你多少會有點體會。如以下**,請著重看最後兩行**。

import random

player_life = random.randint(

100,

150)

player_attack = random.randint(30,

50)enemy_life = random.randint(

100,

150)

enemy_attack = random.randint(30,

50)print

('【玩家】\n'

+'血量:'

+str

(player_life)

+'\n攻擊:'

+str

(player_attack)

)print

('【敵人】\n'

+'血量:'

+str

(enemy_life)

+'\n攻擊:'

+str

(enemy_attack)

)

作為一名程式猿,**是我們的名片,我們會追求更加優雅的,方便他人閱讀的**,所以上述**還有一些優化空間。

為了更方便地實現不同資料型別的拼接,用【格式符%】是更常用更便利的一種方式。

我們可以把%想象成:圖書館裡用來佔位的一本書。先佔乙個位置,之後再填上實際的變數。

舉個例子:下面這兩種寫法是相同的,請你著重研究下第二行的語法。

print

('血量:'

+str

(player_life)

+' 攻擊:'

+str

(player_attack)

)print

('血量:%s 攻擊:%s'

%(player_life,player_attack)

)

我們看到格式符%後面有乙個字母s,這是乙個型別碼,用來控制資料顯示的型別。%s就表示先佔乙個字串型別的位置。

還有其他常見的型別碼如下圖所示:

比如以下**:

lucky =

8print

('我的幸運數字是%d'

% lucky)

print

('我的幸運數字是%d'%8

)print

('我的幸運數字是%s'

%'小龍女的生日816'

)print

('我的幸運數字是%d和%d'%(

8,16)

)

print

('我的幸運數字是%d'%8

)#8以整數展示

print

('我的幸運數字是%s'%8

)#8以字串展示

print(8

)#整數8與字串'8'列印出來的結果是一樣的

print

('8'

)

選用了不同的型別碼,列印出的結果卻是一樣,原因也已經在**注釋中寫清楚了:因為整數8與字串』8』的列印結果是一樣的,所以選兩種型別碼都ok。但這種「都ok」的情況僅限於整數,對文字是行不通的:

#執行後報錯」

print

('我的幸運數字是%s'

%'小龍女的生日816'

)print

('我的幸運數字是%d'

%'小龍女的生日816'

)

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