Pregunta ¿Convertir un entero a una cadena en Python?


Quiero convertir un entero en una cadena en Python. Estoy encasillando en vano:

t=raw_input()
c=[]
for j in range(0,int(t)):
    n=raw_input()
    a=[]
    a,b= (int(i) for i in n.split(' '))
    d=pow(a,b)
    d.str()
    c.append(d[0])
for j in c:
    print j

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


993
2018-06-07 10:22


origen


Respuestas:


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

Enlaces a la documentación:

El problema parece provenir de esta línea: d.str().

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

Además, no debería ser necesario llamar pow(). Intenta usar el ** operador.


1561
2018-06-07 10:24



Prueba esto:

str(i)

79
2018-06-07 10:23



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

Para convertir un objeto en cadena, usa el 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.


43
2018-06-07 10:30



a = 2

Puedes usar str(a) que te da un objeto de cadena de int(2).


20
2018-02-10 18:47



Para administrar entradas no enteras:

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

Ok, si tomo tu último código y reescribo un poco para que funcione con Python:

t=raw_input()
c=[]
for j in range(0,int(t)):
    n=raw_input()
    a=[]
    a,b= (int(i) for i in n.split(' '))
    d=pow(a,b)
    d2=str(d)
    c.append(d2[0])
for j in c:
    print j

Me da algo así como:

>>> 2
>>> 8 2
>>> 2 3
6
8

¿Cuáles son los primeros caracteres del resultado de la secuencia? pow(a,b). ¿Qué estamos tratando de hacer aquí?


14
2018-06-07 10:32



>>> 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

12
2018-06-07 10:24



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

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

6
2018-05-05 21:55



Puedo usar %s o .format

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

(O)

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

3
2017-12-11 10:57



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

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

Para más detalles, puede referirse a la pregunta de desbordamiento de pila Mostrar número con ceros a la izquierda.


1
2018-02-09 01:57



En Python => 3.6 puedes usar f formateo:

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

0
2017-07-20 13:55