[Python 2.7.3] No me convierte string a numero entero

Iniciado por Yidu, 18 Febrero 2013, 21:55 PM

0 Miembros y 2 Visitantes están viendo este tema.

Yidu

Hola!

Primero de todo, seguro que es culpa mía. Y antes de preguntar he mirado vídeos y otros manuales que pululan por mi mesa. Pero no le veo solución.

Pido una entrada de un número (por raw_input). Esta se recoge en una variable. Testeo mediante el type que el numero introducido es string. Luego convierto esa variable (que es un numero) a entero. Mediante int. Pero se lo pasa por el forro.

Este es el script. Siempre me acaba concatenando los números y no los suma. Es decir si pongo 6, me da resultado 66. No 12 ¡¡¡No entiendo nada!!!

variable = raw_input ('Dime un numero: ')

print type (variable)

print variable

int(variable)

print type (variable)

print variable + variable


Ah, lo del int(raw_input ('...'), ya lo sé. Pero quería hacer esta conversión en tiempo de ejecución.

Novlucker

La variable no se convierte, lo que conviertes es el valor de la variable, así que si no lo asignas a una nueva variable no hace nada  :silbar:
Código (python) [Seleccionar]
nueva = int(variable)

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Yidu

#2
Cita de: Novlucker en 18 Febrero 2013, 22:13 PM
La variable no se convierte, lo que conviertes es el valor de la variable, así que si no lo asignas a una nueva variable no hace nada  :silbar:
Código (python) [Seleccionar]
nueva = int(variable)

Saludos

Ok. Lo que entiendo es por que el editor que lleva incorporado Python si lo permite. No me refiero a crear un script. Si no, en el Python Shell.

Mira:

Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> a = '5'
>>> a
'5'
>>> int (a)
5
>>>

Novlucker

El editor te da una preview de lo que estas ejecutando, si ahí mismo usas el type, verás que a sigue siendo string

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Yidu

¡Coño! Tienes mas razón que un santo. Lo he probado y es así. Al mostrar el resultado sin comillas, pensaba que lo había convertido y no es así. De hecho, el Python Shell solo lo utilizo para pruebas rápidas.

Jo, no me queda nada que aprender...

Gracias y un saludo, eh...