我想把一个整型放入字符串中。这就是我现在正在做的事情:

num = 40
plot.savefig('hanning40.pdf') #problem line

我必须为几个不同的数字运行程序,所以我想做一个循环。但是像这样插入变量是行不通的:

plot.savefig('hanning', num, '.pdf')

如何将变量插入到Python字符串中?


另请参阅

如果您尝试使用+来连接一个数字与字符串(或字符串之间等)并得到错误消息,请参阅如何连接str和int对象。

如果您试图用可变数据组合一个URL,不要使用普通的字符串格式,因为这很容易出错,而且比必要的难度更大。有专门的工具可用。参见在Python中向给定URL添加参数。

如果您试图组合一个SQL查询,不要使用普通字符串格式,因为这是一个主要的安全风险。这就是“SQL注入”的原因,它每年花费真实的公司大量的钱。例如,请参阅Python:连接MySQL和执行查询的最佳实践和最安全的方法,以获得适当的技术。

如果你只是想打印(输出)字符串,你可以先这样准备它,或者如果你不需要字符串做其他的事情,使用一个单独的调用打印输出的每一部分。参见如何在同一行上打印多个东西(固定文本和/或变量值),一次全部?有关这两种方法的详细信息。


当前回答

我需要一个扩展版本:我不需要在字符串中嵌入单个数字,而是需要生成'file1.pdf'、'file2.pdf'等形式的一系列文件名。它是这样运作的:

['file' + str(i) + '.pdf' for i in range(1,4)]

其他回答

如果你想在字符串中放入多个值,你可以使用format

nums = [1,2,3]
plot.savefig('hanning{0}{1}{2}.pdf'.format(*nums))

将生成字符串hanning123.pdf。这可以用任何数组来实现。

随着Python 3.6中引入了格式化字符串字面量(简称“f-strings”),现在可以用更简洁的语法来编写:

>>> name = "Fred"
>>> f"He said his name is {name}."
'He said his name is Fred.'

在问题中给出的例子中,它看起来是这样的

plot.savefig(f'hanning{num}.pdf')

你可以在你的字符串中使用字典和替换变量。

var = {"name": "Abdul Jalil", "age": 22}
temp_string = "My name is %(name)s. I am %(age)s years old." % var

我需要一个扩展版本:我不需要在字符串中嵌入单个数字,而是需要生成'file1.pdf'、'file2.pdf'等形式的一系列文件名。它是这样运作的:

['file' + str(i) + '.pdf' for i in range(1,4)]

一般来说,你可以使用以下方法创建字符串:

stringExample = "someString " + str(someNumber)
print(stringExample)
plot.savefig(stringExample)