por - Hacer una cadena de una cadena y un entero en Python
separar palabra en letras python (6)
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo puedo concatenar objetos str e int? 4 respuestas
Obtengo este error cuando trato de tomar un número entero y anexar "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
Python 3.6 tiene f-strings donde puedes poner directamente los nombres de las variables sin necesidad de usar el format
:
>>> num=12
>>> f"b{num}"
''b12''
Python no convertirá automáticamente los tipos de la forma en que lo hacen los lenguajes como JavaScript o PHP.
Tienes que convertirlo en una cadena, o usar un método de formateo.
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 en las conversiones de cadenas.
Pruebe str(num)
lugar
Ya se han dado las respuestas correctas, pero quiero responder y decir que siempre debes usar str (var) cada vez que pretendas usar var como cadena, independientemente de si sabes que es una cadena o no.
Más vale prevenir que curar.
name = "b{0:d}".format( 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 y posteriores. Y robé el nombre "mezclar" de INTERCAL pero así es como hablo y quería verlo impreso al menos una vez antes, como el dodo, se desvanece de la faz de la tierra.