¿Convertir entero a cadena?


1362

Quiero convertir un número entero en una cadena en Python. Lo estoy encasillando en vano:

d = 15
d.str()

Cuando trato de convertirlo a cadena, muestra un error como intque no tiene ningún atributo llamado str.

Respuestas:


2095
>>> str(10)
'10'
>>> int('10')
10

Enlaces a la documentación:

La conversión a una cadena se realiza con la str()función incorporada , que básicamente llama al __str__()método de su parámetro.



62

No hay conversión de texto ni coerción de tipo en Python. Tienes que convertir tu variable de manera explícita.

Para convertir un objeto en cadena, usa la str()función. Funciona con cualquier objeto que tenga un método llamado __str__()definido. De hecho

str(a)

es equivalente a

a.__str__()

Lo mismo si quieres convertir algo a int, float, etc.


esta solución me ayudó, estaba convirtiendo una cadena alfanumérica en una cadena numérica, reemplazando letras con sus valores ascii, sin embargo, el uso directo de la función str () no funcionaba, pero __str __ () funcionaba. Ejemplo (python2.7); s = "14.2.2.10a2" código que no funciona: print "" .join ([str (ord (c)) if (c.isalpha ()) else c for c in s]) código de trabajo: print "" .join ([ord (c) .__ str __ () if (c.isalpha ()) else c for c in s]) Salida esperada: 14.2.2.10972
Jayant

18

Para administrar entradas no enteras:

number = raw_input()
try:
    value = int(number)
except ValueError:
    value = 0

14
>>> i = 5
>>> print "Hello, world the number is " + i
TypeError: must be str, not int
>>> s = str(i)
>>> print "Hello, world the number is " + s
Hello, world the number is 5

11

En Python => 3.6 puedes usar el fformato:

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>

7

Para Python 3.6 puede usar la nueva característica f-strings para convertir a string y es más rápida en comparación con la función str (), se usa así:

age = 45
strAge = f'{age}'

Python proporciona la función str () por ese motivo.

digit = 10
print(type(digit)) # will show <class 'int'>
convertedDigit= str(digit)
print(type(convertedDigit)) # will show <class 'str'>

Para obtener una respuesta más detallada, puede consultar este artículo: Convertir Python Int a String y Python String a Int


6

La forma más decente en mi opinión es ``.

i = 32   -->    `i` == '32'

3
Tenga en cuenta que esto es equivalente a repr(i), por lo que será extraño durante largos. (Prueba i = `2 ** 32`; print i)

16
Esto se ha desaprobado en Python 2 y se ha eliminado por completo en Python 3, por lo que no recomendaría usarlo más. docs.python.org/3.0/whatsnew/3.0.html#removed-syntax
teeks99

6

Puede usar %so.format

>>> "%s" % 10
'10'
>>>

(O)

>>> '{}'.format(10)
'10'
>>>

5

Para alguien que quiera convertir int a string en dígitos específicos, se recomienda el siguiente método.

month = "{0:04d}".format(localtime[1])

Para más detalles, puede hacer referencia a desbordamiento de pila pregunta Nº presentación con ceros a la izquierda .


4

Con la introducción de f-strings en Python 3.6, esto también funcionará:

f'{10}' == '10'

En realidad, es más rápido que llamar str(), a costa de la legibilidad.

De hecho, es más rápido que el %xformateo de cadenas y .format()!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.