viernes, 6 de marzo de 2009

ENTRADA DE DATOS EN PYTHON

Que seria de un progama sin la interaccion con los usuarios :) pues no servirian de a mucho, bueno sin tanto rodeos veamos:

def main():

____n = int(input("Digite:"))
____print (n*2)

if __name__=="__main__":main()

En Python 2.x tenemos input() para capturar enteros y float y raw_input() para cadenas pero desde python3.x solo existe input() y el valor que capture es siempre una cadena asi que si queremos que sea entero lo covertimos con la funcion int() y si queremos un float con la funcion float() convertimos el dato capturado a float asi:

def main():
____n = float(input("Digite:"))
____print (n*2)

if __name__=="__main__":main()

para capturar una simple cadena de texto seria:

def main():
____n = input("Digite:")
____print (n*2)

if __name__=="__main__":main()

Bueno si queremos validar datos para eso tenemos las excepciones en python pero ese tema lo veremos mas adelante por ahora miren un ejemplo que hize para capturar solo un entero:

def main():
____while True:
______try:
______n = int(input("Digite:"))
______break

____except:
______print ("Solo digite enteros")


if __name__=="__main__":main()

Bueno lo que hize es hacer un ciclo infinito de esta forma simulamos una do-while de otros lenguaje con python capturo un valor por teclado y si es entero break rompe el ciclo y termina, pero sino se produce una excepcion en python pero como definimos nuestro propio except nos muestra el mensaje de Solo digite enteros y vuelve a pedir que digite hasta que sea un entero :)

21 comentarios:

  1. Se agradece, justo tengo q hacer un trabajo y no podia hacer entrada por teclado !!!
    Gracias !!!

    ResponderEliminar
  2. Buen dato! justo me preguntaba como hacer eso...

    ResponderEliminar
  3. duda...no me funciona el input o raw_input...
    pues al ejecutar aparece 'digite: ' pero al presionar cualuiqer tecla, no la marca

    ResponderEliminar
  4. hola sabes como puedo hacer para que me detecte la tecla enter al pulsarla para cortar un ciclo while

    ResponderEliminar
  5. Hola amigos, estoy haciendo algunas locuras y tengo una duda... ¿Como podría hacerlo para que lo que estoy ingresando con el teclado no se muestre por pantalla, al estilo de una password?

    ResponderEliminar
  6. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  7. muchas gracias, e estasdo buscando esta informacion un rato largo

    ResponderEliminar
  8. Y si el foco no esta en la consola? Tipo keylogger? Como lo hago?

    Estoy trabajando en Blender (BGE), esta ya tiene para capturar teclas, pero no detecta las teclas de accentos así que estoy buscando otro metodo alternativo, sin embargo todo lo que encuentro solo funciona en la consola, no en la ventana del juego, alguna alternativa?

    ResponderEliminar
  9. Apenas estoy aprendiendo a programar y elegí python. Quen me dice una forma de como capturar teclado estoy usando Google App Engine

    ResponderEliminar
  10. ESTO ES UNA BASURA NO SIRVE DE NADA CREO QUE ESTA PERSONA DEBE DE SOLUCIONAR LO ANTES POSIBLE POR QUE NO ES POSIBLE ESTO EN LA PC.
    MILDRED MACÍAS

    ResponderEliminar
  11. Gracias por la info, me sirvió

    ResponderEliminar
  12. if __name__=="__main__":main() para que sirve esto... porque lo ponen ... recien estoy empezando con python ayudenme .. porfa

    ResponderEliminar
  13. hola alguien me podria decir como validar el input nombre para que solo sean letras y no numero
    esto e hecho validar que al menos sean 2 letras.
    nombre=input("entre su nombre \n")

    while len(prenom) < 2:
    prenom=input("por favor entre su nombre \n")

    ResponderEliminar
  14. buenas noches alguno a echo un teclado de celular en python por favor necesito ayuda

    ResponderEliminar