Создание строки из строки и целого числа в Python
Я получаю эту ошибку при попытке взять целое число и добавить к нему "b", преобразовая его в строку:
File "program.py", line 19, in getname
name = "b" + num
TypeError: Can't convert 'int' object to str implicitly
Что связано с этой функцией:
num = random.randint(1,25)
name = "b" + num
Ответы
Ответ 1
name = 'b' + str(num)
или
name = 'b%s' % num
как отмечает С.Лотт, оператор mingle "%" устарел для Python 3 и выше. И я украл имя "mingle" из INTERCAL, но так, как я об этом говорю и хотел увидеть его в печати хотя бы один раз раньше - как додо - он исчезает с лица земли.
Ответ 2
Python не будет автоматически преобразовывать типы так, как это делают языки, такие как JavaScript или PHP.
Вам нужно преобразовать его в строку или использовать метод форматирования.
name="b"+str(num)
или форматирование в стиле printf...
name="b%s" % (num,)
или новый метод .format string
name="b{0}".format(num)
Ответ 3
Да, python не имеет неявного int для преобразования строк.
попробуйте str(num)
вместо
Ответ 4
Правильные ответы уже даны, но я хочу прослушивать и говорить, что вы всегда должны использовать str (var) каждый раз, когда вы собираетесь использовать var в качестве строки, независимо от того, знаете ли вы, что это строка или нет.
Лучше безопасно, чем жалеть.
Ответ 5
name = "b{0:d}".format( num )