Объединение строки И целого числа в python

в python говорят, что у вас есть

s = "string"
i = 0
print s+i

даст вам ошибку так вы пишете

print s+str(i) 

чтобы не сделать ошибки.

Я думаю, что это довольно неуклюжий способ обработки конкатенации int и string. Даже Java не нужно явное приведение к строке, чтобы сделать этот вид конкатенации. Есть ли лучший способ сделать такого рода конкатенацию i.e без явного кастинга в Python?

4 ответов


современный формат строки:

"{} and {}".format("string", 1)

нет форматирования строк:

>> print 'Foo',0
Foo 0

форматирование строк, используя новый стиль .format() метод (со значениями по умолчанию .format () обеспечивает):

 '{}{}'.format(s, i)

или старше, но "все еще торчит",%-форматирования:

 '%s%d' %(s, i)

в обоих примерах выше есть нет пространство между двумя объединенными элементами. Если требуется пространство, его можно просто добавить в строки формата.

это много контроля и гибкости о том, как объединить элементы, пространство между ними и т. д. Подробнее о формат спецификации смотрите это.


Python-интересный язык, поскольку, хотя обычно существует один (или два) "очевидных" способа выполнения любой заданной задачи, гибкость все еще существует.

s = "string"
i = 0

print (s + repr(i))

приведенный выше фрагмент кода написан в синтаксисе Python3, но скобки после печати всегда были разрешены (необязательно), пока версия 3 не сделала их обязательными.

надеюсь, что это помогает.

Кэтлин