亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

哪一個?f 字符串或在 python3 中使用格式

哪一個?f 字符串或在 python3 中使用格式

尚方寶劍之說 2022-10-18 17:22:05
python3中哪個更好?它們具有相同的輸出,但大多數代碼都使用格式而不是 F 字符串。a = "Test"   print(f"this is for {a}")或格式?print("This is for {}".format(a))有時當我將 F 字符串用于目錄和文件路徑時,我遇到了一些錯誤,但使用格式沒有問題。
查看完整描述

1 回答

?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

正如評論中所指出的,Real Python 網站上提供了一個很好的字符串格式化方法比較。

在許多情況下,與其他變體相比,f 字符串更具可讀性并且更不易出現人為錯誤,但需要 Python >= 3.6,因此如果需要向后兼容,則可能必須避免使用??偟膩碚f,它們是一個不錯的選擇,但不時會出現一些問題。


嵌套 f 字符串時,必須小心使用引號。這失敗了:


>>> f"Hello {"there"}"

  File "<stdin>", line 1

    f"Hello {"there"}"

                  ^

SyntaxError: invalid syntax

但是在內部使用其他引號可以解決這個問題:


>>> f"Hello {'there'}"

'Hello there'

但是,您不能將包含字符串文字的 f 字符串嵌套得比這更深,因為您沒有更多不同的引號可供使用。


我經常偶然發現的另一個問題是在 f-string 表達式部分中不允許使用反斜杠的限制,即使它們在字符串文字中:


>>> f"Path: {'C:\Windows'}"

  File "<stdin>", line 1

SyntaxError: f-string expression part cannot include a backslash

您可以使用中間變量來解決這個問題,或者format():


>>> path = 'C:\Windows'

>>> f"Path: {path}"

'Path: C:\\Windows'


>>> "Path: {0}".format('C:\Windows')

'Path: C:\\Windows'

這可能是您使用 f 字符串格式化路徑時遇到的問題。'\n'在使用 f-string 表達式部分中包含換行符的字符串文字時,我個人傾向于遇到此限制。


查看完整回答
反對 回復 2022-10-18
  • 1 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號