sábado, 22 de enero de 2011

Python - Uso de input y raw_input

Ambas funciones son validas a la hora de crear una sentencia que solicite datos, pero ¿Que diferencia tienen?.

La función input está destinada a la entrada de cualquier caracter, siempre y cuando este mismo sea notificado como es. Es decir, si ingresamos números, simplemente sera así lo que nos dirá Python:

valor = input ("Ingrese cantidad: ")
print "Usted ingreso: " + valor + "!"

>>> Ingrese cantidad: 40
>>> Usted ingreso: "40"!


¿Que pasaría si ingresamos un String?

nombre = input ("¿Cual es tu nombre? ")
print "Hola, " + nombre+ "!"

>>> ¿Cual es tu nombre? Arturo
Traceball (most recent calls last):
File "C:\python\prueba.py", line 2, in?


Este error se debe a que Python supone que el ingreso sera un String y requiere que sea definido. Para solucionarlo bastaría con adicionar lo siguiente:

>>> ¿Cual es tu nombre? "Arturo"
>>> Hola, Arturo


Aunque el problema está solucionado, dudo que el usuario final ingrese su nombre de esa manera.
¿Entonces que hacemos?
Recurrimos a la función raw_input, esta función hará que Python almacene lo que sea dentro de un String.

nombre = raw_input ("¿Cual es tu nombre? ")
print "Hola, " + nombre+ "!"

>>> ¿Cual es tu nombre? Arturo
>>> Hola, Arturo!

valor = raw_input ("Ingrese cantidad: ")
print "Usted ingreso: " + valor + "!"

>>> Ingrese cantidad: 40
>>> Usted ingreso: 40!


Fácil ¿no?

8 comentarios:

  1. Me vino de perlas, antes solo conocía raw_input() y si quería introducir un numero tenía que transformarlo:

    n = raw_input()
    n = int(n)

    Una tontería, pero me vas a ahorrar rabajo en el futuro xD

    ResponderEliminar
  2. Jorge, eso que hacías también puedes hacerlo escribiendo n=int(raw_input()), es lo mismo.

    ResponderEliminar
  3. Muy sencilla la explicación y clara... Gracias!

    ResponderEliminar
  4. bueno tengo un pequeño problema con un ejercico
    print ("Hola, como te llamas?")

    nombre=raw_input('cual es su nombre')
    print ("Es un placer conocerte ") + nombre
    a = input('')
    me reclama que raw_input no esta definiida y no se que hacer

    ResponderEliminar
  5. queria saber que significa int y input

    ResponderEliminar
  6. porfavor es urgente necesito ahora si esque int se utiliza para escribir y input para leer?

    ResponderEliminar
  7. int = significa (Entero) ejemplo
    Cantidad = int(50) el 50 es un nimero entero
    pero si fuera un numero decimal ejem (1.40)
    pondrias cantidad = float(1.40)
    y
    input seutiliza para que el programa espere una reaccion de nosotros ejemplo, le decimos a un programa que queremos que nos pida cual es nuestro nombre, el programa tiene que esperar que ingresemos nuestro nombre y en ese caso usamos la funcion input ejem
    Nombre = input("Digite su nombre")
    print "Hola: " + Nombre + "!"

    ResponderEliminar