separar - string en python
¿Convertir un entero a una cadena en Python? (10)
En Python => 3.6 puedes usar el formato f
:
>>> int_value = 10
>>> f''{int_value}''
''10''
>>>
Quiero convertir un número entero a una cadena en Python. Lo estoy encasillando en vano:
d = 15
d.str()
Cuando intento convertirlo en una cadena, se muestra un error, ya que int
no tiene ningún atributo llamado str
.
La forma más decente en mi opinión es ``.
i = 32 --> `i` == ''32''
No hay encasillado ni coacción de tipo en Python. Tienes que convertir tu variable de una manera explícita.
Para convertir un objeto en una cadena, use la función str()
. Funciona con cualquier objeto que tenga definido un método llamado __str__()
. De hecho
str(a)
es equivalente a
a.__str__()
Lo mismo si quieres convertir algo a int, float, etc.
Para alguien que quiere convertir int en cadenas en dígitos específicos, se recomienda el siguiente método.
month = "{0:04d}".format(localtime[1])
Para más detalles, puede consultar la pregunta Número de visualización de desbordamiento de pila con ceros iniciales .
Para gestionar 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 como:
>>> 2
>>> 8 2
>>> 2 3
6
8
Cuáles son los primeros caracteres del resultado de cadena pow(a,b)
. ¿Qué estamos tratando de hacer aquí?
Prueba esto:
str(i)
Puede usar %s
o .format
>>> "%s" % 10
''10''
>>>
(O)
>>> ''{}''.format(10)
''10''
>>>
>>> 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
>>> str(10)
''10''
>>> int(''10'')
10
Enlaces a la documentación:
El problema parece venir de esta línea: d.str()
.
La conversión a una cadena se realiza con la función str()
incorporada, que básicamente llama al __str__()
de su parámetro.
Además, no debería ser necesario llamar a pow()
. Intente usar el operador **
.
a = 2
Puede usar str(a)
que le da un objeto de cadena de int(2)
.