婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python 的 f-string 可以連接字符串與數字的原因解析

Python 的 f-string 可以連接字符串與數字的原因解析

熱門標簽:騰訊地圖標注有什么版本 400電話辦理費用收費 鎮江人工外呼系統供應商 千呼ai電話機器人免費 高德地圖標注字母 申請辦個400電話號碼 柳州正規電銷機器人收費 外呼系統前面有錄音播放嗎 深圳網絡外呼系統代理商

本文出自“Python為什么”系列,歸檔在 Github 上:https://github.com/chinesehuazhou/python-whydo

毫無疑問,Python 是一門強類型語言。強類型語言。強類型語言!(關于強弱類型話題,推薦閱讀這篇 技術科普文)

這就意味著,不同類型的對象通常需要先做顯式地類型轉化, 然后才能進行某些操作。

下面以字符串和數字為例,看看強行操作會產生什么結果:

>>> "Python貓" + 666
Traceback (most recent call last):
 File "stdin>", line 1, in module>
TypeError: can only concatenate str (not "int") to str

它報類型錯誤了(TypeError),說字符串只能連接(concatenate)字符串,不能連接 int 類型。 這正是強類型語言的基本約束。

但是,如果我們先把數字“轉化”成字符串類型,再執行“+”操作,就不會報錯了:

>>> "Python貓" + str(666)
'Python貓666'

上面的這個例子,對讀者們來說,應該并不難理解。

由此,我們要引出一個問題:如何在不作顯式類型轉化的情況下,進行字符串與數字類型的拼接呢?

在《詳解Python拼接字符串的七種方式》這篇文章中,它梳理了七種拼接字符串的寫法,我們可以逐個來試驗一下。

幾種字符串拼接方式:

1、格式化類:%、format()、template

2、拼接類:+、()、join()

3、插值類:f-string

為了節省篇幅,此處直接把可以順利拼接的 4 種寫法羅列如下:

>>> "%s %d" % ("Python貓", 666)
'Python貓 666'

>>> from string import Template
>>> s = Template('${s1}${s2}')
>>> s.safe_substitute(s1='Python貓',s2=666)
'Python貓666'

>>> "Python貓{}".format(666)
'Python貓666'

>>> num = 666
>>> f"Python貓{num}"
'Python貓666'

第一種寫法(即 % 格式化)來自古老的 C 語言,其中的“%d”是一個占位符,表示它將要接收一個整數,并格式化成字符串。

第二和第三種寫法,它們是第一種寫法的升級版,不同的是,它們的占位符是通用型的,不必指定“%s”、“%d”等等明確的類型。這兩種寫法中,數字類型的參數被傳給特定的格式化方法(即 safe_substitute 與 format),在這些方法的內部,它們會作類型轉化處理。

可以說,上述三種寫法都不難理解,它們的意圖都有跡可循。

但是,現在再看看最后一種寫法,也就是 f-string 寫法,似乎就不是那么明顯了。

首先,在字符串內部,它并沒有像“%格式化”那樣指定占位符的類型;其次,所要拼接的數字并沒有作為任何函數的參數來傳遞。

也就是說,在明面上根本看不出任何要作類型轉化的意圖。但是,由于我們已知 Python 是強類型語言,已知數字類型絕對不可能直接拼接到字符串里,因此,只能說明 f-string 語法在底層作了某種類型轉化的操作!

那么,我們就可以再提出一個新的問題:f-string 語法在處理字符串與數字時,是如何實現數字的類型轉化的呢?

也許有的讀者會猜想它是調用了內置的 str() 或 repr()(或它們對應的魔術方法__str__() 與 __repr__()),從而實現類型轉化,但是,答案并沒有如此簡單!

f-string 語法是在 Python 3.6 版本引入的。為了省事,我們直接找到 PEP-498 文檔,在里面查閱看是否有關于實現原理的線索。

文檔地址:https://www.python.org/dev/peps/pep-0498

PEP 里提到,f-string 的語法格式是這樣的:

f'text> { expression> optional !s, !r, or !a> optional : format specifier> } text> ...'

其中,花括號里的內容就是要作格式化的內容,除去可選的“optional”部分后,“expression”部分就是真正要處理的內容。對應前文的例子,數字 666 就是一個 expression。

expression 會按 __format__ 協議進行格式化,但是并不會直接調用 __format__() 這個方法。

文檔上指出,實際的執行過程等效于type(value).__format__(value, format_spec) 或者 format(value, format_spec)

事實上,字符串對象的 foramt() 方法跟 Python 內置的 foramt() 函數,它們都會調用__format__() 魔術方法,所以,f-string 其實是前文中 format() 格式化寫法的升級版。

在默認情況下,format_spec 是一個空字符串,而format(value, "") 的效果等同于str(value) ,因此,在不指定其它 format_spec 的情況下,可以簡單地認為 f-string 就是調用了 str() 來作的類型轉化……

至此,我們看到了 f-string 的實現原理,明白了它在拼接字符串與數字時,效果等效于前文的 format() 格式化方法,也等效于使用 str() 進行類型轉化。

寫在最后:本文屬于“Python為什么”系列(Python貓出品),該系列主要關注 Python 的語法、設計和發展等話題,以一個個“為什么”式的問題為切入點,試著展現 Python 的迷人魅力。更多精彩文章,請移步 Github 查看,項目地址:https://github.com/chinesehuazhou/python-whydo

到此這篇關于Python 的 f-string 可以連接字符串與數字的原因解析的文章就介紹到這了,更多相關Python f-string 連接字符串與數字內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解Python中string模塊除去Str還剩下什么
  • Python字符串格式化f-string多種功能實現
  • Python bytes string相互轉換過程解析
  • Python3中的f-Strings增強版字符串格式化方法
  • python3格式化字符串 f-string的高級用法(推薦)
  • 一文了解python 3 字符串格式化 F-string 用法
  • Python 格式化輸出_String Formatting_控制小數點位數的實例詳解
  • Python StringIO如何在內存中讀寫str
  • python 實現list或string按指定分段
  • Python序列對象與String類型內置方法詳解
  • 詳解python3中用HTMLTestRunner.py報ImportError: No module named ''StringIO''如何解決
  • Python解析json時提示“string indices must be integers”問題解決方法
  • Python將string轉換到float的實例方法
  • python f-string式格式化聽語音流程講解
  • Python格式化字符串f-string概覽(小結)
  • Python的文本常量與字符串模板之string庫

標簽:平頂山 海南 大慶 烏蘭察布 合肥 烏蘭察布 哈爾濱 郴州

巨人網絡通訊聲明:本文標題《Python 的 f-string 可以連接字符串與數字的原因解析》,本文關鍵詞  Python,的,f-string,可以,連接,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python 的 f-string 可以連接字符串與數字的原因解析》相關的同類信息!
  • 本頁收集關于Python 的 f-string 可以連接字符串與數字的原因解析的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久综合九色综合久久久精品综合| 日韩国产一二三区| av中文一区二区三区| 亚洲福中文字幕伊人影院| 国产欧美日韩精品在线| 欧美一区三区二区| 欧美亚洲国产怡红院影院| 成人av资源下载| 国产一区二区中文字幕| 青草国产精品久久久久久| 亚洲国产精品久久人人爱蜜臀 | 一本大道久久精品懂色aⅴ| 麻豆国产精品777777在线| 亚洲电影一级黄| 一二三四社区欧美黄| 自拍偷自拍亚洲精品播放| 中文字幕av一区二区三区高| 亚洲国产精品传媒在线观看| 国产日产精品1区| 中文在线资源观看网站视频免费不卡| 精品成人佐山爱一区二区| 精品日韩一区二区三区免费视频| 91精品在线一区二区| 欧美一区二区私人影院日本| 91精品国产一区二区三区| 制服.丝袜.亚洲.另类.中文| 欧美zozozo| 久久久国产精品麻豆| 国产农村妇女毛片精品久久麻豆| 久久久精品免费网站| 日本一二三四高清不卡| 日韩美女精品在线| 洋洋av久久久久久久一区| 午夜久久久久久| 激情综合网最新| 成人三级伦理片| 色老头久久综合| 欧美乱熟臀69xxxxxx| 日韩欧美国产麻豆| 国产区在线观看成人精品| 国产精品福利一区| 亚洲成人资源网| 精品亚洲国产成人av制服丝袜| 国产精品一区二区久久精品爱涩| 99re热这里只有精品视频| 欧美日韩精品久久久| 欧美xxxxx裸体时装秀| 中文字幕综合网| 日韩国产欧美视频| jizz一区二区| 欧美一区二区三区日韩视频| 国产日本欧美一区二区| 亚洲v精品v日韩v欧美v专区| 国产精品123区| 精品污污网站免费看| 久久久久久久电影| 亚洲一级片在线观看| 国产精品色哟哟| 国产日韩欧美精品电影三级在线| 欧美日韩中字一区| 国产精品色哟哟| 蜜桃视频一区二区| 国产精品欧美一区喷水| 婷婷综合久久一区二区三区| 色悠悠久久综合| 日韩1区2区日韩1区2区| 蜜桃av一区二区| 亚洲国产成人tv| 国产精品77777竹菊影视小说| 91在线免费视频观看| 欧美精品一区二区高清在线观看| 亚洲综合网站在线观看| 久久超级碰视频| 欧美色网站导航| 国产成人免费视频网站 | 一区二区免费视频| 国产在线看一区| 在线精品视频一区二区三四 | 亚洲一二三区在线观看| 国产精品一区二区不卡| 日韩欧美国产综合| 日韩精品国产欧美| 在线亚洲免费视频| 国产精品国产三级国产普通话蜜臀 | 91久久线看在观草草青青| 26uuu国产日韩综合| 日韩国产欧美在线视频| 欧美性感一类影片在线播放| 最新日韩av在线| 成人一区在线看| 欧美激情综合在线| 国产成人日日夜夜| 国产亚洲美州欧州综合国| 久久精品国产一区二区| 91精品久久久久久久久99蜜臂| 夜夜爽夜夜爽精品视频| 色婷婷亚洲婷婷| 亚洲天堂免费看| av福利精品导航| 亚洲欧美激情小说另类| 欧美亚洲国产一区在线观看网站 | 欧美一区二区久久| 成人国产在线观看| 丁香网亚洲国际| 男女性色大片免费观看一区二区 | 国产福利一区二区三区在线视频| 91精品国产综合久久精品性色| 亚洲精品视频自拍| 91女人视频在线观看| 中文字幕欧美区| 99久久er热在这里只有精品66| 国产精品久久久久9999吃药| 色94色欧美sute亚洲线路一久| 亚洲午夜三级在线| 6080yy午夜一二三区久久| 日韩综合小视频| 精品国产91乱码一区二区三区 | 日韩视频免费直播| 久久99久久精品| 国产欧美视频一区二区| 成人av电影免费在线播放| 欧美在线你懂得| 亚洲一二三四在线观看| 欧美日精品一区视频| 日韩国产欧美在线播放| 久久久亚洲高清| 91视频国产资源| 婷婷综合另类小说色区| 久久久久久亚洲综合影院红桃| 成人午夜电影网站| 亚洲影视在线播放| 欧美va在线播放| 色婷婷av一区二区三区软件| 亚洲男人天堂一区| 日韩欧美国产三级| 在线亚洲+欧美+日本专区| 精东粉嫩av免费一区二区三区| 国产精品电影一区二区| 欧美群妇大交群中文字幕| 国产一区二区三区免费看| 亚洲免费观看高清完整版在线观看熊 | 亚洲香蕉伊在人在线观| 欧美www视频| 色综合久久88色综合天天免费| 天堂久久久久va久久久久| 久久久99免费| 99视频国产精品| 美女视频第一区二区三区免费观看网站 | 成人av午夜电影| 日本女优在线视频一区二区| 亚洲女人小视频在线观看| 久久久蜜桃精品| 日韩视频中午一区| 欧美日韩一本到| 91老师片黄在线观看| 久久aⅴ国产欧美74aaa| 五月综合激情日本mⅴ| 亚洲人成网站影音先锋播放| 国产三级精品在线| 精品99久久久久久| 日韩女优制服丝袜电影| 欧美日韩亚洲高清一区二区| 成人免费黄色在线| 国产一区亚洲一区| 日韩高清在线一区| 秋霞国产午夜精品免费视频| 一区二区免费在线播放| 一区二区在线看| 亚洲精品欧美激情| 亚洲欧美日韩国产综合在线| 中文字幕一区二区三区在线不卡 | 国产精品一区二区免费不卡 | 国产高清不卡一区| 国内外成人在线| 久久不见久久见中文字幕免费| 日韩电影在线观看电影| 五月激情丁香一区二区三区| 午夜视频在线观看一区| 亚洲第一电影网| 青草av.久久免费一区| 热久久国产精品| 久久成人免费电影| 国产一区亚洲一区| 成人夜色视频网站在线观看| 波多野结衣的一区二区三区| 99久久99久久精品免费观看| 色哦色哦哦色天天综合| 精品视频色一区| 日韩丝袜美女视频| 久久精品国产久精国产| 亚洲精品久久久蜜桃| 一区二区三区波多野结衣在线观看| 亚洲国产欧美在线人成| 久久久美女毛片| 国产视频一区在线观看| 国产肉丝袜一区二区| 国产丝袜美腿一区二区三区| 亚洲精品在线观| 中文字幕一区日韩精品欧美| 国产欧美日本一区二区三区|