您現在的位置是:首頁 > 飲食

終究還是錯付了!這2種Python格式化寫法已經被淘汰,你還在用?

由 程式設計師晚楓 發表于 飲食2022-08-16
簡介同樣的例子,使用format方法是下面這樣的:sname =‘晚楓’age =‘18歲零48個月’job =‘程式設計師’hobby =‘點讚的人’sentence =‘你好,我是{},今年{},是個{},喜歡{}

請求pbs異常是什麼意思

想了解更多精彩內容,快來關注程式設計師晚楓

終究還是錯付了!這2種Python格式化寫法已經被淘汰,你還在用?

大家好,這裡是程式設計師晚楓,

知識星球:Python讀者圈。

今天我們來討論一個問題:

python裡是如何格式化字串的?實際工作中使用的是哪一種?

一、3種方式

%格式化

已淘汰

format格式化(python2。6新增)

不好用,處於淘汰的邊緣。

f-string格式化(python3。6新增)

目前最常用

舉個例子,現在需要列印:你好,我是”晚楓“。 以上3種用法的程式碼如下:

# 1、%格式化

name =

‘晚楓’

sentence =

‘你好,我是%s’

% (name)

# sentence = 你好,我是晚楓

# 2、format格式化(python2。6新增)

name =

‘晚楓’

sentence =

‘你好,我是{}’

。format(name)

# sentence = 你好,我是晚楓

# 3、f-string格式化(python3。6新增)

name =

‘晚楓’

sentence =

f‘你好,我是

{name}

# sentence = 你好,我是晚楓

乍一看,看不出這幾種方式的區別,接下來我們透過例子,詳細看一下它們的優缺點。

二、為什麼第3種最流行?

按照時間順序,每一種新方式的推出,都是對上一種的改進。這3種表達方式,分別改進了上一種的什麼不足呢?

原理層面的我們只說一種:每一種的程式碼執行速度,都比上一種的快。

如果想詳細瞭解它們是如何提高效能的,歡迎留言討論~

這裡我們主要說一下用法上的改進:

%格式化

這種表達方式,當變數較多時,很容易混淆,假如我們想寫一句:你好,我是

晚楓

,今年

18歲零48個月

,是個

程式設計師

,喜歡

點讚的人

使用這種方式,你將陷入百分號(%)的地獄,稍有不慎就會漏寫一個,導致程式崩潰。

sname =

‘晚楓’

age =

‘18歲零48個月’

job =

‘程式設計師’

hobby =

‘點讚的人’

sentence =

‘你好,我是%s,今年%s,是個%s,喜歡%s。’

% (name, age, job, hobby)

format格式化

所以,為了改進上面的問題,python2。6新增了format方法。 同樣的例子,使用format方法是下面這樣的:

sname =

‘晚楓’

age =

‘18歲零48個月’

job =

‘程式設計師’

hobby =

‘點讚的人’

sentence =

‘你好,我是{},今年{},是個{},喜歡{}。’

。format(name, age, job, hobby)

# 你還可以這樣寫

sentence =

‘你好,我是{name},今年{age},是個{job},喜歡{hobby}。’

。format(name, age, job, hobby)

去掉了原有的%,取而代之的是{},甚至還可以把變數名稱寫進—{}裡面進行識別。

雖然比原來的%要清爽一些,但format後面還是要把一大串變數名稱重複寫一遍,是不是依然很麻煩?

f-string格式化

於是,python3。6新增了目前最常用的這種格式化方法,直接上程式碼。

sname =

‘晚楓’

age =

‘18歲零48個月’

job =

‘程式設計師’

hobby =

‘點讚的人’

sentence =

‘你好,我是{},今年{},是個{},喜歡{}。’

。format(name, age, job, hobby)

# 你還可以這樣寫

sentence = f

‘你好,我是{name},今年{age},是個{job},喜歡{hobby}。

發現了嗎?你只需要在格式化的字串前面加上一個小寫字母:f,這段字串就可以自動格式化了,既沒有%的冗餘,也沒有format對變數名的重複書寫。

3、寫在最後

每次新的python版本開始研發之時,程式設計師都會高度關注新版本有哪些新特點。為什麼?

原因無它,python一直在進步,看著自己工作的工具變得越來越高階,生產效率越來越高,也是一種樂趣吧。

據說python3。11的速度將提高2倍,我是相當期待了:

Python 3。11 ,更快更高更強!

相關閱讀

用Python下載B站影片?1行命令搞定,悄悄用

程式設計師找不到工作,先去外包過渡2年?千萬別去

用Python自動生成 圖文並茂的資料分析 報告

推薦文章