Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: WaAYa HaCK en 19 Mayo 2011, 09:19 am



Título: Problema en Python
Publicado por: WaAYa HaCK en 19 Mayo 2011, 09:19 am
Hola a tod@s!
Estoy aprendiendo Python y estaba creando una calculadora básica:
Código:
print "CALCULADORA BASICA EN PYTHON"
print "Escriu el primer numero: "
unum = raw_input("> ")
print "-------------------------------------------------------"
print "Escriu el segon numero: "
dnum = raw_input("> ")
def suma(x, y):
    return x + y
print "I la suma es... "
print suma(unum, dnum)
print "Gracies per usar la Calculadora!"
raw_input()

El problema es que, al escribir:
Código:
type(unum)
devuelve type('str').

Y si pongo 2 como primer número y 3 como segundo, me da 23 de resultado.


Cómo puedo hacer que me trate las variables como enteros y no como cadenas?
He probado en ponerlos como decimal, pero no funciona.

Gracias!
Waaya


Título: Re: Problema en Python
Publicado por: criskapunk en 19 Mayo 2011, 12:40 pm
Podes usar la funcion int() para convertir el valor a un entero.

Código
  1. unum = int(raw_input("> "))

Código
  1. dnum = int(raw_input("> "))

Mira la documentacion de Python:

Código:
http://docs.python.org/library/functions.html

Un saludo!


Título: Re: Problema en Python
Publicado por: WaAYa HaCK en 19 Mayo 2011, 17:42 pm
Ok, funciona perfectamente! ¡Muchas gracias!  ;-)


Título: Re: Problema en Python
Publicado por: LeXeL en 19 Mayo 2011, 21:40 pm
Tambien puedes usar input(">")

Ya que:
input(">")  -> Integrer
raw_input(">") -> String


Título: Re: Problema en Python
Publicado por: criskapunk en 19 Mayo 2011, 23:49 pm
Segun entiendo, input() no es unicamente para enteros, sino que analiza la expresion que se le pasa como argumento, y devuelve el tipo correspondiente.

Código
  1. print type(input(">"))
  2. >2
  3. <type 'int'>

Código
  1. print type(input(">"))
  2. >"Hola"
  3. <type 'str'>

Código
  1. print type(input(">"))
  2. >True
  3. <type 'bool'>

Un saludo!


Título: Re: Problema en Python
Publicado por: Novlucker en 20 Mayo 2011, 03:23 am
Depende, el input de Python 3.x o el de versiones anteriores? :P

Saludos


Título: Re: Problema en Python
Publicado por: criskapunk en 20 Mayo 2011, 03:39 am
Yo uso la version 2.7.

Un saludo!