Ruby示例:

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

成功的Python字符串连接对我来说似乎很冗长.

推荐答案

Python3.6将添加literal string interpolation个类似Ruby的字符串插值.从该版本的Python(计划于2016年底发布)开始,您将能够在"f字符串"中包含表达式,例如.

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

在3.6之前的版本中,您能达到的最近距离是

name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? %(name)s." % locals())

在Python中,%运算符可以用于string interpolation.第一个操作数是要内插的字符串,第二个操作数可以有不同的类型,包括"映射",将字段名映射到要内插的值.在这里,我使用局部变量字典locals()将字段名name映射到其作为局部变量的值.

使用最新Python版本的.format()方法的相同代码如下所示:

name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? {name!s}.".format(**locals()))

还有string.Template级:

tmpl = string.Template("Who lives in a Pineapple under the sea? $name.")
print(tmpl.substitute(name="Spongebob Squarepants"))

Python相关问答推荐

Deliveryter Notebook -无法在for循环中更新matplotlib情节(保留之前的情节),也无法使用动画子功能对情节进行动画

如何使用html从excel中提取条件格式规则列表?

通过Selenium从页面获取所有H2元素

如何调整QscrollArea以正确显示内部正在变化的Qgridlayout?

有没有一种方法可以从python的pussompy比较结果中提取文本?

Python—从np.array中 Select 复杂的列子集

pandas:排序多级列

多处理队列在与Forking http.server一起使用时随机跳过项目

需要帮助重新调整python fill_between与数据点

dask无groupby(ddf. agg([min,max])?''''

找到相对于列表索引的当前最大值列表""

在Google Drive中获取特定文件夹内的FolderID和文件夹名称

Python pint将1/华氏度转换为1/摄氏度°°

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

SpaCy:Regex模式在基于规则的匹配器中不起作用

Polars表达式无法访问中间列创建表达式

将像素信息写入文件并读取该文件

如果列包含空值,则PANAS查询不起作用

无法使用请求模块从网页上抓取一些产品的名称

为什么在更新Pandas 2.x中的列时,数据类型不会更改,而在Pandas 1.x中会更改?