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