Crear una cadena a partir de una cadena y un entero en Python

Recibo este error al intentar tomar un entero y anteponer “b” a él, convirtiéndolo en una cadena:

File "program.py", line 19, in getname name = "b" + num TypeError: Can't convert 'int' object to str implicitly 

Eso está relacionado con esta función:

 num = random.randint(1,25) name = "b" + num 

 name = 'b' + str(num) 

o

 name = 'b%s' % num 

como señala S.Lott, el operador de mezcla ‘%’ está en desuso para Python 3 en adelante. Y robé el nombre “mingle” de INTERCAL, pero así es como lo menciono y quería verlo impreso al menos una vez antes, como el dodo, desaparece de la faz de la tierra.

Python no convertirá automáticamente los tipos de la manera en que lo hacen los lenguajes como JavaScript o PHP.

Tienes que convertirlo en una cadena, o utilizar un método de formato.

 name="b"+str(num) 

o formato de estilo printf …

 name="b%s" % (num,) 

o el nuevo método de cadena .format

 name="b{0}".format(num) 

Sí, Python no tiene int implícito para conversiones de cadenas.

prueba str(num) lugar

Python 3.6 tiene f-strings donde puedes poner directamente los nombres de las variables sin la necesidad de usar el format :

 >>> num=12 >>> f"b{num}" 'b12' 
 name = "b{0:d}".format( num ) 

Ya se han dado las respuestas correctas, pero quiero intervenir y decir que siempre debe usar str (var) cada vez que intente usar var como una cadena, independientemente de si sabe que es una cadena o no.

Más vale prevenir que curar.