viernes, 31 de enero de 2014

Entrada Estándar: input()


La función input() permite a los usuarios introducir datos de distintos tipos desde la entrada estándar (normalmente se corresponde con la entrada de un teclado). 

Introducir datos de distinto tipo


edad = int(input('Teclear edad: '))  # entrada de entero
peso = float(input('Teclear peso: '))  # entrada de flotante
nombre = input('Teclear nombre: ')  # entrada de cadena
print(nombre, edad, 'años', peso, 'kg')  # muestra datos

Introducir datos con captura de errores (excepciones)


try:  # bloque de código a comprobar
    articulos = int(input('Artículos:'))  # entrada de un número 
    precio = int(input('Precio:'))  # entrada de un número
    print('Pagar: ' + str(articulos*precio) + '€') # muestra resultado

except:  # bloque para captura de error
    print('error, deben ser números')  # muestra mensaje

Introducir datos con captura de errores en bucle


tramos = 0
total = 0
while True:
    try:
        distancia = int(input('Distancia: '))
        if distancia == 0:
            break
        else:
            tramos += 1
            total += distancia
            print('Los {} tramos miden {} km.'.format(tramos,total))
    except:
        print('Debes teclear un número entero')

En el siguiente ejemplo si se produce un error no se detendrá el proceso. Volverá a pedirse que se introduzca un dato numérico gracias al bucle.

Introducir fechas y horas con captura de errores


Para validar la entrada de fechas y horas se utiliza la función strptime() del módulo datetime que convierte la entrada introducida a un tipo de datos llamado datetime. En caso de que no pueda convertirla porque no se adecue a una fecha/hora correcta producirá una excepción.

import datetime

while True:
    try:
        fecha = input("Introducir Fecha dd-mm-aaaa: ")
        fecha = datetime.datetime.strptime(fecha, "%d-%m-%Y")
        break
 
    except:
        print ("Fecha incorrecta\n")

print(fecha)


Ir al índice del tutorial de Python