首頁 >後端開發 >Python教學 >Python 是否有像 Ruby 那樣的字串插值?

Python 是否有像 Ruby 那樣的字串插值?

Susan Sarandon
Susan Sarandon原創
2024-11-30 04:27:15959瀏覽

Does Python Have String Interpolation Like Ruby's?

Python 提供與 Ruby 相當的字串插值嗎?

在 Ruby 中,字串插值允許將表達式插入到字串中,從而增強程式碼可讀性。 Ruby 字串插值的範例:

name = "Spongebob Squarepants"
puts "Who lives in a Pineapple under the sea? \n#{name}."

對於 Python 開發人員來說,等效的字串連接可能看起來很冗長。

Python 3.6 及更高版本中的 Python 字串插值

值得慶幸的是,Python 3.6 引入了與 Ruby 類似的文字字串插值。在Python 3.6 中,「f-strings」允許包含表達式:

name = "Spongebob Squarepants"
print(f"Who lives in a Pineapple under the sea? {name}.")

Python 3.6 之前的替代方案

在Python 3.6 之前,請考慮以下選項:

  • %運算子: 使用用於字串插值的 % 運算子。第一個運算元是要插值的字串,第二個運算元可以包含將欄位名稱對應到值的「對應」。可以使用 locals() 建立映射。
name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? %(name)s." % locals())
  • .format() 方法: 利用.format() 方法插入字串:
name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? {name!s}.".format(**locals()))
  • string.Template類別:
  • 使用string.Template 類別進行字串插值:
tmpl = string.Template("Who lives in a Pineapple under the sea? $name.")
print(tmpl.substitute(name="Spongebob Squarepants"))

以上是Python 是否有像 Ruby 那樣的字串插值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn