Je voudrais mettre un int
dans un string
. Voici ce que je fais en ce moment:
num = 40
plot.savefig('hanning40.pdf') #problem line
Je dois exécuter le programme pour plusieurs numéros différents, donc je voudrais faire une boucle. Mais l'insertion de la variable comme celle-ci ne fonctionne pas:
plot.savefig('hanning', num, '.pdf')
Comment insérer une variable dans une chaîne Python?
%
opérateur est obsolète à partir de Python 3.1. La nouvelle façon préférée est d'utiliser la.format()
méthode décrite dans le PEP 3101 et mentionnée dans la réponse de Dan McDougall.Oh, les nombreuses façons ...
Concaténation de chaînes:
Spécificateur de conversion:
Utilisation de noms de variables locales:
En utilisant
str.format()
:Utilisation de chaînes f:
En utilisant
string.Template
:la source
'foo %d, bar %d' % (foo, bar)
.plot.savefig('hanning{num}s.pdf'.format(**locals()))
plot.savefig(f'hanning{num}.pdf')
. J'ai ajouté une réponse avec cette info.Avec l'introduction de littéraux de chaîne formatés ("f-strings" pour faire court) dans Python 3.6, il est maintenant possible d'écrire ceci avec une syntaxe plus brève:
Avec l'exemple donné dans la question, cela ressemblerait à ceci
la source
Vous ne savez pas exactement ce que fait tout le code que vous avez publié, mais pour répondre à la question posée dans le titre, vous pouvez utiliser + comme fonction de concaténation de chaîne normale ainsi que str ().
J'espère que cela pourra aider!
la source
+
doivent être évitées car elles sont extrêmement coûteusesEn général, vous pouvez créer des chaînes en utilisant:
la source
Si vous souhaitez mettre plusieurs valeurs dans la chaîne, vous pouvez utiliser
format
Entraînerait la chaîne
hanning123.pdf
. Cela peut être fait avec n'importe quel tableau.la source
J'avais besoin d'une version étendue de ceci: au lieu d'incorporer un seul numéro dans une chaîne, j'avais besoin de générer une série de noms de fichiers de la forme 'file1.pdf', 'file2.pdf' etc. travaillé:
la source
Il vous suffit de transtyper la variable num en une chaîne en utilisant
la source