Я хотел бы положить int
в string
. Вот чем я сейчас занимаюсь:
num = 40
plot.savefig('hanning40.pdf') #problem line
Я должен запустить программу для нескольких разных номеров, поэтому я хотел бы сделать цикл. Но вставка такой переменной не работает:
plot.savefig('hanning', num, '.pdf')
Как вставить переменную в строку Python?
%
оператор устарел с Python 3.1. Новый предпочтительный способ заключается в использовании.format()
метода, который обсуждался в PEP 3101 и упоминался в ответе Дэна Макдугалла.Ох, много, много способов ...
Конкатенация строк:
Спецификатор конверсии:
Использование имен локальных переменных:
Использование
str.format()
:Использование f-строк:
Использование
string.Template
:источник
'foo %d, bar %d' % (foo, bar)
.plot.savefig('hanning{num}s.pdf'.format(**locals()))
plot.savefig(f'hanning{num}.pdf')
. Я добавил ответ с этой информацией.С введением отформатированных строковых литералов (для краткости "f-strings") в Python 3.6 теперь можно написать это с более коротким синтаксисом:
С примером, приведенным в вопросе, это будет выглядеть так
источник
Не знаю точно, что делает весь код, который вы опубликовали, но чтобы ответить на вопрос, поставленный в заголовке, вы можете использовать + как обычную функцию concat для строк, а также str ().
Надеюсь, это поможет!
источник
+
следует избегать построения строк, так как это чрезвычайно дорогоВ общем, вы можете создавать строки, используя:
источник
Если вы хотите поместить несколько значений в строку, вы можете использовать
format
Приведет к строке
hanning123.pdf
. Это можно сделать с любым массивом.источник
Мне нужна была расширенная версия этого: вместо того, чтобы встраивать одно число в строку, мне нужно было сгенерировать серию имен файлов в форме 'file1.pdf', 'file2.pdf' и т. Д. Вот как это работал:
источник
Вы просто должны преобразовать num переменную в строку, используя
источник