Eu gostaria de colocar um int
em um string
. Isto é o que estou fazendo no momento:
num = 40
plot.savefig('hanning40.pdf') #problem line
Eu tenho que executar o programa para vários números diferentes, então eu gostaria de fazer um loop. Mas inserir a variável assim não funciona:
plot.savefig('hanning', num, '.pdf')
Como insiro uma variável em uma string Python?
%
operador está obsoleto no Python 3.1. A nova maneira preferida é usar o.format()
método discutido no PEP 3101 e mencionado na resposta de Dan McDougall.Oh, de muitas, muitas maneiras ...
Concatenação de cadeias:
Especificador de conversão:
Usando nomes de variáveis locais:
Usando
str.format()
:Usando strings-f:
Usando
string.Template
:fonte
'foo %d, bar %d' % (foo, bar)
.plot.savefig('hanning{num}s.pdf'.format(**locals()))
plot.savefig(f'hanning{num}.pdf')
. Eu adicionei uma resposta com esta informação.Com a introdução de literais de string formatada ("f-strings", abreviado) no Python 3.6, agora é possível escrever isso com uma sintaxe mais breve:
Com o exemplo dado na pergunta, ficaria assim
fonte
Não sabe exatamente o que todo o código que você postou faz, mas para responder à pergunta colocada no título, você pode usar + como a função normal concat de strings, bem como str ().
Espero que ajude!
fonte
+
deve ser evitado como extremamente caroEm geral, você pode criar strings usando:
fonte
Se você quiser colocar vários valores na string, poderá usar
format
Resultaria na string
hanning123.pdf
. Isso pode ser feito com qualquer matriz.fonte
Eu precisava de uma versão estendida disso: em vez de incorporar um único número em uma string, eu precisava gerar uma série de nomes de arquivos no formato 'file1.pdf', 'file2.pdf' etc. etc. trabalhou:
fonte
Você só precisa converter o número variável em uma string usando
fonte