name = 'b' + str(num)
или
name = 'b%s' % num
как отмечает С.Лотт, оператор mingle '%' устарел для Python 3 и выше. Название "mingle" я украл из INTERCAL, но так я о нем говорю и хотел увидеть его в печати хотя бы раз, прежде чем он, подобно дронту, исчезнет с лица земли.
Правильные ответы уже даны, но я хочу вмешаться и сказать, что вы должны всегда использовать str (var) каждый раз, когда вы намереваетесь использовать var как строку, независимо от того, знаете ли вы, что это строка или нет.
Лучше перестраховаться, чем сожалеть.
Python не будет автоматически преобразовывать типы так, как языки, такие как JavaScript или PHP делать.
Вы должны преобразовать его в строку или использовать метод форматирования.
name="b"+str(num)
или форматирование стиля printf ...
name="b%s" % (num,)
или новый метод строки .format
name="b{0}".format(num)
Да, в Python нет неявных преобразований типа int в строку.
попробуйте str (num)
вместо