如何在Python中的string中放置一个variables?

我想把一个int放入一个string 。 这就是我现在正在做的事情:

 end = smooth(data,window_len=40) plot.plot(time[0:len(end)],end) plot.savefig('hanning(40).pdf') #problem line 

我必须运行该程序的几个不同的数字,而不是两个40年代。 所以我想做一个循环,但插入这样的variables不起作用:

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

如何在Pythonstring中插入一个variables?

 plot.savefig('hanning(%d).pdf' % num) 

%操作符在跟随一个string时,允许您通过格式代码(在这种情况下为%d )将值插入到该string中。 有关更多详细信息,请参阅Python文档:

https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting

哦,有很多种方法

string连接:

 plot.savefig('hanning' + str(num) + '.pdf') 

转换说明符:

 plot.savefig('hanning%s.pdf' % num) 

使用局部variables名称:

 plot.savefig('hanning%(num)s.pdf' % locals()) # Neat trick 

使用format():

 plot.savefig('hanning{0}.pdf'.format(num)) # Note: This is the new preferred way 

使用string.Template:

 plot.savefig(string.Template('hanning${num}.pdf').substitute(locals())) 

不确定你发布的所有代码的确切内容,但要回答标题中提出的问题,可以使用+作为普通stringconcat函数以及str()。

 "hello " + str(10) + " world" = "hello 10 world" 

希望有所帮助!

在Python 3.6中引入了格式化的string文字 (简称“f-strings”),现在可以用更简单的语法来编写它:

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

用问题中给出的例子,看起来像这样

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

通常,您可以使用以下命令创buildstring:

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

我需要这个扩展版本:而不是在一个string中embedded一个单一的数字,我需要生成一系列'file1.pdf','file2.pdf'等文件名。工作:

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