Cómo concatenar una cadena y un entero en Python

Introducción

Python soporta la concatenación de cadenas usando el operador +. En la mayoría de los otros lenguajes de programación, si concatenamos una cadena con un entero (o cualquier otro tipo de datos primitivos), el lenguaje se encarga de convertirlos a cadena y luego los concatena.

Sin embargo, en Python, si intentas concatenar una cadena con un entero usando el operador +, obtendrás un error en tiempo de ejecución.

Ejemplo

Veamos un ejemplo de cómo concatenar una cadena (str) y un entero (int) usando el operador +.

string_concat_int.py
current_year_message = 'Year is '

current_year = 2018

print(current_year_message + current_year)

La salida deseada es la cadena: El año es 2018. Sin embargo, cuando ejecutamos este código, obtenemos el siguiente error en tiempo de ejecución:

Traceback (most recent call last):
  File "/Users/sammy/Documents/github/journaldev/Python-3/basic_examples/strings/string_concat_int.py", line 5, in <module>
    print(current_year_message + current_year)
TypeError: can only concatenate str (not "int") to str

Entonces, ¿cómo concatenas str y int en Python? Hay varias otras formas de realizar esta operación.

Prerrequisitos

Para completar este tutorial, necesitarás:

Este tutorial fue probado con Python 3.9.6.

Usando la función str()

Podemos pasar un int a la función str() y será convertido a un str:

print(current_year_message + str(current_year))

El entero current_year es devuelto como un string: El año es 2018.

Usando el Operador de Interpolación %

Podemos pasar valores a una especificación de conversión con Formato de Cadena al estilo printf:

print("%s%s" % (current_year_message, current_year))

El entero current_year es interpolado como un string: El año es 2018.

Utilizando la función str.format()

También podemos utilizar la función str.format() para la concatenación de cadenas e enteros.

print("{}{}".format(current_year_message, current_year))

El entero current_year se convierte a una cadena: Año es 2018.

Utilizando f-strings

Si estás utilizando Python 3.6 o versiones superiores, también puedes utilizar f-strings.

print(f'{current_year_message}{current_year}')

El entero current_year se interpola a una cadena: Año es 2018.

Conclusión

Puedes revisar el script completo de Python y más ejemplos en Python en nuestro repositorio de GitHub.

Source:
https://www.digitalocean.com/community/tutorials/python-concatenate-string-and-int