Как я помещаю переменную в строке?

Я хотел бы поместить int в a string. Это - то, что я делаю в данный момент:

num = 40
plot.savefig('hanning40.pdf') #problem line

Я должен запустить программу для нескольких различных чисел, таким образом, я хотел бы сделать цикл. Но вставка переменной как это не работает:

plot.savefig('hanning', num, '.pdf')

Как я вставляю переменную в строку Python?

216
задан martineau 28 March 2019 в 06:38
поделиться

4 ответа

plot.savefig('hanning(%d).pdf' % num)

Оператор % при следовании за строкой позволяет вставлять значения в эту строку с помощью кодов формата (в данном случае % d ) . Дополнительные сведения см. В документации Python:

https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting

156
ответ дан 23 November 2019 в 04:16
поделиться

О, множество, много способов ...

Конкатенация строк:

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()))
428
ответ дан 23 November 2019 в 04:16
поделиться

Как правило, вы можете создавать строки, используя:

stringExample = "someString " + str(someNumber)
print(stringExample)
plot.savefig(stringExample)
6
ответ дан 23 November 2019 в 04:16
поделиться

Не уверен, что именно делает весь опубликованный вами код, но чтобы ответить на вопрос, поставленный в заголовке, вы можете использовать + как обычную функцию конкатенации строк, а также str () .

"hello " + str(10) + " world" = "hello 10 world"

Надеюсь, это поможет!

15
ответ дан 23 November 2019 в 04:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: