首页 > 后端开发 > Python教程 > Python 是否有像 Ruby 那样的字符串插值?

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

Susan Sarandon
发布: 2024-11-30 04:27:15
原创
891 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板