Объединение строки И целого числа в python
в python говорят, что у вас есть
s = "string"
i = 0
print s+i
даст вам ошибку так вы пишете
print s+str(i)
чтобы не сделать ошибки.
Я думаю, что это довольно неуклюжий способ обработки конкатенации int и string. Даже Java не нужно явное приведение к строке, чтобы сделать этот вид конкатенации. Есть ли лучший способ сделать такого рода конкатенацию i.e без явного кастинга в Python?
4 ответов
форматирование строк, используя новый стиль .format()
метод (со значениями по умолчанию .format () обеспечивает):
'{}{}'.format(s, i)
или старше, но "все еще торчит",%
-форматирования:
'%s%d' %(s, i)
в обоих примерах выше есть нет пространство между двумя объединенными элементами. Если требуется пространство, его можно просто добавить в строки формата.
это много контроля и гибкости о том, как объединить элементы, пространство между ними и т. д. Подробнее о формат спецификации смотрите это.
Python-интересный язык, поскольку, хотя обычно существует один (или два) "очевидных" способа выполнения любой заданной задачи, гибкость все еще существует.
s = "string"
i = 0
print (s + repr(i))
приведенный выше фрагмент кода написан в синтаксисе Python3, но скобки после печати всегда были разрешены (необязательно), пока версия 3 не сделала их обязательными.
надеюсь, что это помогает.
Кэтлин