Foros del Web » Programando para Internet » Python »

Problema en codigo sencillo.

Estas en el tema de Problema en codigo sencillo. en el foro de Python en Foros del Web. Hola a todos, les cuento que ultimamente he estado aprendiendo Python, aun soy un super novato, asi que estaba practicando un poco, pero me tope ...
  #1 (permalink)  
Antiguo 17/08/2009, 19:31
Avatar de evil_reindeer  
Fecha de Ingreso: febrero-2009
Mensajes: 12
Antigüedad: 15 años, 9 meses
Puntos: 0
Problema en codigo sencillo.

Hola a todos, les cuento que ultimamente he estado aprendiendo Python, aun soy un super novato, asi que estaba practicando un poco, pero me tope con un pequeño problema.

Tengo dos variables, numero1 y numero2, ambas son definidas por el usuario, por lo que queda asi.

Código:
print ("escribe un numero")
numero1=input()
print ("escribe otro numero")
numero2=input()
print (numero1+numero2)
El problema es que no suma las dos variables, es decir, si numero1 vale 5 y numero2 vale 4, el resultado no es 9, sino 54. Es decir, solo las une no las suma.

¿Como hago para que las sume?
Saludos y gracias por adelantado.
  #2 (permalink)  
Antiguo 17/08/2009, 20:51
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Problema en codigo sencillo.

Código python:
Ver original
  1. numero1 = int(input("Escribe un numero:\n"))
  2. numero2 = int(input("Escribe otro numero:\n"))
  3. print (numero1+numero2)

la funcion input retorna un string, tienes que convertirlas a enteros.

Te recomiendo que te leas un buen tutorial como el de:
--Python para todos
o
--Dive into python
  #3 (permalink)  
Antiguo 18/08/2009, 09:52
Usuario no validado
 
Fecha de Ingreso: septiembre-2008
Ubicación: Cuba
Mensajes: 34
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problema en codigo sencillo.

Hola a tod@s

Me parece que existe cierto error: la funcion interna raw_input siempre interpreta la entrada como una cadena, y la funcion input espera un entero: no obstante te cito lo que dice "Inmersion en Python" te agrego que debes tener cierto cuidado con el uso de input:

Cita:
Python proporciona funciones internas que obtienen entradas desde el teclado.
La más sencilla se llama raw input. Cuando llamamos a esta función, el programa se detiene y espera a que el usuario escriba algo. Cuando el usuario pulsa la tecla Return o Enter, el programa se reanuda y raw input devuelve lo que el usuario escribio ́ como tipo string:

>>> entrada = raw_input ()
A qui ́ estás esperando?
>>> print entrada
A qui ́ estás esperando?

Antes de llamar a raw input es conveniente mostrar un mensaje que le pida al
usuario el dato solicitado. Este mensaje se llama indicador (prompt en inglés).

Puede proporcionarle un indicador a raw input como argumento:

>>> nombre = raw_input ("Cómo te llamas? ")

Cómo te llamas? Héctor, héroe de los Troyanos!

>>> print nombre
Héctor, héroe de los Troyanos!

Si espera que la entrada sea un entero, utilice la función input. Por ejemplo:
o
>>> indicador = "Cuál es la velocidad de una golondrina sin carga?\n"

>>> velocidad = input (indicador)
Si el usuario teclea una cadena de números, se convertirá en un entero y se

asignará a velocidad. Por desgracia, si el usuario escribe algo que no sea un

d́ıgito, el programa dará un error:

>>> velocidad = input (indicador)
Cuál es la velocidad de una golondrina sin carga?

Se refiere usted a la golondrina europea o a la africana?
SyntaxError: invalid syntax
un saludo
  #4 (permalink)  
Antiguo 18/08/2009, 10:09
Usuario no validado
 
Fecha de Ingreso: septiembre-2008
Ubicación: Cuba
Mensajes: 34
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problema en codigo sencillo.

Lo que te debe estar pasando es que estas introduciendo los datos como cadena, es la unica forma que te puede pasar lo que estas explicando, o sea:

numero1=input()
'5'
numero2=input()
'4'

print numero1+numero2
54

es de la unica manera que te puede estar concatenado los valores de numero1 y numero2, la entrada debe ser sin apostrofe:

numero1=input()
5
numero2=input()
4
print numero1+numero2
9

otro saludo.
  #5 (permalink)  
Antiguo 18/08/2009, 10:10
Avatar de evil_reindeer  
Fecha de Ingreso: febrero-2009
Mensajes: 12
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema en codigo sencillo.

Muchas gracias, ya lo corregi, y de paso ya empece a leer Inversion en Python y Python para todos.
De nuevo gracias por su ayuda.
Saludos!
  #6 (permalink)  
Antiguo 18/08/2009, 11:54
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Problema en codigo sencillo.

Cita:
Iniciado por srmagno Ver Mensaje
Hola a tod@s

Me parece que existe cierto error: la funcion interna raw_input siempre interpreta la entrada como una cadena, y la funcion input espera un entero: no obstante te cito lo que dice "Inmersion en Python" te agrego que debes tener cierto cuidado con el uso de input:



un saludo
Completamete de acuerdo, pero puedes deducir, por el uso de input y como pone el print que esta usando python3.0.

Y en python3.0 cambia la cosa con el input y el raw_input (raw_input dejo de existir) y ahora input regresa un string.

Aquí un fragmento de santa documentación de python3.0
Cita:
input(...)
input([prompt]) -> string

Read a string from standard input. The trailing newline is stripped.
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
On Unix, GNU readline is used if enabled. The prompt string, if given,
is printed without a trailing newline before reading.
  #7 (permalink)  
Antiguo 18/08/2009, 15:12
Avatar de evil_reindeer  
Fecha de Ingreso: febrero-2009
Mensajes: 12
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema en codigo sencillo.

Cita:
Completamete de acuerdo, pero puedes deducir, por el uso de input y como pone el print que esta usando python3.0.

Y en python3.0 cambia la cosa con el input y el raw_input (raw_input dejo de existir) y ahora input regresa un string.


Exacto, estoy usando Python 3.0, de hecho desde que estoy empezando a aprender he usado Python 3.0, por eso cuando intente usar raw_input(), me marcaba error, despues de checar la documentación, me di cuenta de que dejo de existir, por eso solo me sirvio el ejemplo que tu me diste.

Bueno, de nuevo muchas gracias!
Y un saludo
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 16:21.