Подтвердить что ты не робот

Создание строки из строки и целого числа в 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
4b9b3361

Ответ 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 )