我正在尝试创建一个程序,而我正在尝试做的一件事就是像这样将变量添加到字符串中。
EnemyHealth = 0
EnemyIs = 'dead'
print("The Enemy's health is %d. The Enemy is %d." % (EnemyHealth,EnemyIs)
但是每次我尝试它都不会让我使用字符串作为变量之一。如何将可变字符串插入另一个字符串?
PS 我使用的是 python 3.7.0
原文由 PLP123 发布,翻译遵循 CC BY-SA 4.0 许可协议
我知道有 4 种方法可以在 python (Python 3) 上实现这一点:
1)串联:
您可以使用
+
连接 2 个字符串,但是您只能连接字符串类型数据,这意味着非字符串类型数据需要使用str()
函数转换为字符串。例如:2) 利用 Python 3 的
print()
可以接受多个参数参数的函数:这里你的
print()
语句类似于上面的连接语句,除了我使用+
连接你需要用,
使用它的好处是,不同的数据类型会自动转换为字符串,即不再需要str()
函数。例如:3)使用你的字符串替换方法
您的代码不起作用的原因是因为
%d
意味着您将用一个整数替换它,因此要使您的代码工作,因为存储在变量EnemyIs
上的字符串需要被替换with%s
用于声明它将被替换为字符串。因此,要解决您的问题,您需要执行以下操作:4)
format()
python字符串的方法(这是最好的使用方法)这是 python 中所有字符串的内置方法,它允许您使用任何变量轻松替换 python 字符串中的占位符
{}
。与上面的解决方案 3 不同,此format()
方法不需要您将不同的数据类型表达或转换为字符串,因为它会自动为您完成此操作。例如,要使您的 print 语句正常工作,您可以执行以下操作:或者
更新:
5) F弦
从 python 3.6+ 开始,您现在还可以使用 f-strings 来替换字符串中的变量。这个方法类似于上面介绍的
.format()
方法,在我看来是对str.format()
方法的更好升级。要使用此方法,您只需声明f
在定义字符串时在开始引号之前声明,然后在字符串中使用格式{[variable name goes here]}
即可使其正常工作。例如,要使您的 print 语句起作用,使用此方法,您可以执行以下操作:正如您使用此方法所见,
variable name
直接在大括号{}
中实例化。