Me gustaría poner un int
en a string
. Esto es lo que estoy haciendo en este momento:
num = 40
plot.savefig('hanning40.pdf') #problem line
Tengo que ejecutar el programa para varios números diferentes, así que me gustaría hacer un ciclo. Pero insertar la variable de esta manera no funciona:
plot.savefig('hanning', num, '.pdf')
¿Cómo inserto una variable en una cadena de Python?
%
operador está en desuso a partir de Python 3.1. La nueva forma preferida es hacer uso del.format()
método como se discutió en PEP 3101 y se menciona en la respuesta de Dan McDougall.Oh, las muchas, muchas formas ...
Concatenación de cadenas:
Especificador de conversión:
Usando nombres de variables locales:
Utilizando
str.format()
:Usando cadenas f:
Utilizando
string.Template
:fuente
'foo %d, bar %d' % (foo, bar)
.plot.savefig('hanning{num}s.pdf'.format(**locals()))
plot.savefig(f'hanning{num}.pdf')
. Agregué una respuesta con esta información.Con la introducción de literales de cadena formateados ("f-strings" para abreviar) en Python 3.6, ahora es posible escribir esto con una sintaxis más breve:
Con el ejemplo dado en la pregunta, se vería así
fuente
No estoy seguro de qué 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 normal de cadena de caracteres, así como str ().
¡Espero que ayude!
fuente
+
debe evitarse ya que su extremadamente caroEn general, puede crear cadenas usando:
fuente
Si desea poner varios valores en la cadena, puede utilizar
format
Resultaría en la cadena
hanning123.pdf
. Esto se puede hacer con cualquier matriz.fuente
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 'file1.pdf', 'file2.pdf', etc. Así es como funciona. trabajó:
fuente
Solo tiene que convertir el número variable en una cadena usando
fuente