¿Cómo pongo una variable dentro de una cadena?

Me gustaría poner un int en una string . Esto es lo que estoy haciendo en este momento:

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

Tengo que ejecutar el progtwig para varios números diferentes, así que me gustaría hacer un bucle. Pero insertar la variable como esta no funciona:

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

¿Cómo inserto una variable en una cadena de Python?

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

El operador % , cuando sigue una cadena, le permite insertar valores en esa cadena a través de códigos de formato (el %d en este caso). Para más detalles, vea la documentación de Python:

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

Oh, las muchas, muchas maneras …

Concatenación de cuerdas:

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

Especificador de conversión:

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

Usando nombres de variables locales:

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

Utilizando str.format() :

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

Usando f-cuerdas:

 plot.savefig(f'hanning{num}.pdf') # added in Python 3.6 

Usando string.Template :

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

Con la introducción de literales de cadena con formato (“f-strings” para abreviar) en Python 3.6, ahora es posible escribir esto con una syntax más breve:

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

Con el ejemplo dado en la pregunta, se vería así

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

No está seguro de lo que hace exactamente todo el código que publicó, pero para responder a la pregunta planteada en el título, puede usar + como la función de concat de cadena normal, así como str ().

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

¡Espero que ayude!

En general, puedes crear cadenas usando:

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

Necesitaba una versión extendida de esto: en lugar de incrustar un solo número en una cadena, necesitaba generar una serie de nombres de archivo con el formato ‘archivo1.pdf’, ‘archivo2.pdf’, etc. Así es como trabajó:

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

Si desea colocar varios valores en la cadena, puede utilizar el format

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

hanning123.pdf en la cadena hanning123.pdf . Esto se puede hacer con cualquier matriz.