Foros del Web » Programando para Internet » Python »

Python interpreta números como cadenas

Estas en el tema de Python interpreta números como cadenas en el foro de Python en Foros del Web. Hola, estoy usando Python3 y tengo el siguiente problema en este programa simple: Código: a=input("ingrese A:") b=input("ingrese B:") print (a+b) Si ingreso 2 y 4 ...
  #1 (permalink)  
Antiguo 22/09/2011, 18:42
 
Fecha de Ingreso: junio-2003
Ubicación: Mi casa
Mensajes: 2
Antigüedad: 20 años, 10 meses
Puntos: 0
Python interpreta números como cadenas

Hola, estoy usando Python3 y tengo el siguiente problema en este programa simple:

Código:
a=input("ingrese A:")
b=input("ingrese B:")
print (a+b)
Si ingreso 2 y 4 la salida en lugar de 6 da 24

No encuentro cuál es el motivo

Saludos!
  #2 (permalink)  
Antiguo 22/09/2011, 19:18
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Python interpreta números como cadenas

Es por que input (en python 3.x) regresa siempre regresa un string.

Lo que tienes hacer es convertirlo a un entero. Con ayuda de la función int.

Ejemplo:
Código Python:
Ver original
  1. a = int("5")
  2. print(a + 1)
  #3 (permalink)  
Antiguo 22/09/2011, 19:41
 
Fecha de Ingreso: septiembre-2011
Mensajes: 42
Antigüedad: 12 años, 7 meses
Puntos: 3
Respuesta: Python interpreta números como cadenas

No seria mejor convertirlo con la funcion float por si es que ingresa decimales?
__________________
"Porque nada se...
quiero saberlo todo"
  #4 (permalink)  
Antiguo 22/09/2011, 21:49
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Python interpreta números como cadenas

Eso ya depende de lo que pida el programa, solo mostré un ejemplo de uso.

Ademas los enteros no se desbordan* en comparación de los flotantes.

*Ok si lo hacen pero con valores mucho mas grandes
  #5 (permalink)  
Antiguo 23/09/2011, 06:42
 
Fecha de Ingreso: junio-2003
Ubicación: Mi casa
Mensajes: 2
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Python interpreta números como cadenas

Muchas Gracias. Lo solucioné con:

Cita:
a=float(input("Ingresa un número: "))
b=float(input("Ingresa otro número: "))
suma= a+b
  #6 (permalink)  
Antiguo 23/09/2011, 07:44
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Python interpreta números como cadenas

Espero que estés capturando la posible excepción en caso de que lo que se ingrese no sea un número

Etiquetas: cadenas, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:49.