将变量放入Python字符串

3

var_a(可以是任意变量名) 应该被其值所替代:

var_a = "Hello"

var_b = "var_a world"

print var_b

输出应为:你好,世界

1
保持简单... var_a + ' 世界' - OneCricketeer
这并不像你所说的那么简单。你只有包含变量名的字符串。需要评估未知的变量。 - Swapnil
1
你的问题没有未知变量。 - OneCricketeer
你不知道哪个变量会出现在画面中。 - Swapnil
我不知道那是什么意思,但如果你想使用一个变量来格式化一个字符串,那么这个变量必须是“在作用域内”的。该变量的内容并不重要。 - OneCricketeer
2个回答

1
那正好符合str.format的描述。您需要用花括号将“您想要替换的字符串部分”包起来:
var_a = "Hello"

var_b = "{var_a} world".format(var_a=var_a)

也可以不使用“名称”来使用它:

var_b = "{} world".format(var_a)

如果你不知道字符串中的变量名怎么办? - Swapnil
@Swapnil 看看第二个代码块。你插入的变量 (var_a) 必须被定义。 - OneCricketeer
var_a不是固定变量,您如何将其添加到格式中? - Swapnil
@Swapnil 我理解的对吗:您事先不知道要替换哪个字符串的一部分?还是变量名应该是动态的? - MSeifert
是的,像 Ruby 一样package = "Interpy" print "享受 #{package}!" - Swapnil
1
在这种情况下,我建议升级到Python 3.6并使用f-strings:var_b = f"{var_a} world"。 :) (您可以使用解决方法使其在Python 2.7上运行,但效率低下且容易出现错误)。 - MSeifert

0

这被称为变量替换。您可以使用Python中的字符串格式化/插值运算符来实现。您上面编写的代码将无法按照您期望的方式工作。

例如,如果您想要使用变量替换获得所需的输出,可以尝试以下操作:

var_a = "Hello"
var_b = "%s world" % var_a
print var_b

这将输出“Hello world”。

文档


你只需要一个干净的字符串,并且需要评估变量,比如Ruby包 =“Interpy”打印“享受#{package}!” - Swapnil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接