Я хотел бы поместить int
в a string
. Это - то, что я делаю в данный момент:
num = 40
plot.savefig('hanning40.pdf') #problem line
Я должен запустить программу для нескольких различных чисел, таким образом, я хотел бы сделать цикл. Но вставка переменной как это не работает:
plot.savefig('hanning', num, '.pdf')
Как я вставляю переменную в строку Python?
plot.savefig('hanning(%d).pdf' % num)
Оператор %
при следовании за строкой позволяет вставлять значения в эту строку с помощью кодов формата (в данном случае % d
) . Дополнительные сведения см. В документации Python:
https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting
О, множество, много способов ...
Конкатенация строк:
plot.savefig('hanning' + str(num) + '.pdf')
Спецификатор преобразования:
plot.savefig('hanning%s.pdf' % num)
Использование имен локальных переменных:
plot.savefig('hanning%(num)s.pdf' % locals()) # Neat trick
Использование str.format ()
:
plot.savefig('hanning{0}.pdf'.format(num)) # Note: This is the new preferred way
Использование f-строк:
plot.savefig(f'hanning{num}.pdf') # added in Python 3.6
Использование string.Template
:
plot.savefig(string.Template('hanning${num}.pdf').substitute(locals()))
Как правило, вы можете создавать строки, используя:
stringExample = "someString " + str(someNumber)
print(stringExample)
plot.savefig(stringExample)
Не уверен, что именно делает весь опубликованный вами код, но чтобы ответить на вопрос, поставленный в заголовке, вы можете использовать + как обычную функцию конкатенации строк, а также str () .
"hello " + str(10) + " world" = "hello 10 world"
Надеюсь, это поможет!