終究還是錯付了!這2種Python寫法已經被淘汰了,你是不是還在用?
關於行程式碼的含義:0.2f,代表取小數點後2位,這個已經在群裡詳細討論過了。
我在這裡,再補充一個知識點: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 ,更快更高更強!
相關閱讀
「其他文章」
- 幫師姐把100個Excel中符合條件的資料,彙總到1個Excel裡
- 176萬!GPT-4釋出了,如何檢視OpenAI的下載量?
- 1行Python程式碼,把PPT轉成圖片,python-office功能更新~
- 定了!Python3.7,今年停止更新!
- 1行Python程式碼去除圖片水印,網友:乾乾淨淨!
- Python辦公實戰!按姓名拆分Excel為單獨檔案,微信自動發給相應聯絡人
- 12個Python自動化辦公的官方文件,中文版只有2個?
- 終究還是錯付了!這2種Python寫法已經被淘汰了,你是不是還在用?
- 用Python下載B站視訊?1行命令搞定,悄悄用
- 用Python自動生成 圖文並茂的資料分析 報告
- 自動合併Excel的4種方法,pandas自動化辦公,YYDS
- 絕了!深度解析了1道華為Python筆試題,竟然可以學會12種Python里正則表示式的用法
- 1行Python程式碼,實現PDF轉圖片,速度太太太太太快了
- 1行Python程式碼,拿到周杰倫新歌的MP3檔案,終於可以免費聽周杰倫了
- 官方推薦:6種Pandas讀取Excel的方法,太方便了~
- 如何生成1億個手機號碼?Python生成隨機數的22種方法,random函式太強了~
- 新人必看:python自動化辦公,開源專案的目錄結構
- 一行Python程式碼,給PDF檔案新增水印
- 太厲害了,通過文件內容快速查詢檔案,1行Python程式碼實現
- 一行Python程式碼,如何成為辦公小助手?這5個操作,超實用!