Está en la página 1de 22

Validación de Datos

Unidad 2: Elementos de Programación


Sistema versus Usuario
• Hasta ahora hemos aprendido
a ingresar datos, procesarlos y
responder interrogantes
predefinidas, pero ¿que
sucede cuando nuestro
programa se enfrenta al
usuario final?

• ERRORES!!
Manejo de excepciones
• Nuestro sistema no presenta errores pero el usuario los
causa ingresando valores no contemplados. Por ejemplo
solicitamos un numero entero y nos ingresan una letra o
cadena de caracteres o como el ejemplo:
try - except
• Para solventar este problema existe la clausula try y
except.

• Al realizar esto nuestro sistema se encuentra preparado


para enfrentar el error y tomar un curso de acción que
evite la caída del programa.
• Hemos capturado nuestra primera excepción, ahora
¿que sucede si el error es distinto?
División por cero
• Nuestro sistema en este caso esta preparado para la
división por cero, ¿que sucede si ingresamos una cadena
de caracteres?:
¿Es una solución?
• Teóricamente podríamos nuevamente capturar el error
en esta ocasión en los input iniciales:

• Pero esto solo evitaría el error, y generaría una respuesta


incoherente, al ejecutarse el segundo print():

Ha
¿Recuerdas la clausula break?
• Es el momento de usar un ciclo y la clausula break:

Ha
¿Es posible optimizar esto?
• Como hemos visto nuestro código ha crecido bastante, lo
cual nos hace pensar si será posible mejorar esto y reducir
las líneas de código. La respuesta es sí:

Ha
¿Y si los errores son demasiados?
• No mejoraría el panorama si dentro de nuestro código
tenemos muchos errores y un except para cada uno, es
por eso que podemos definir uno general:

Ha
¿Y ahora cómo encuentro el error?
• Si es un error desconocido que podría ocurrir en tiempo
de ejecución como la perdida de conexión a una base
de datos externa podemos capturar la excepción:

Ha

Ha
Dibujando con la tortuga!!
¿Sabías que con Python se puede
dibujar?
import turtle

turtle.forward(100)
turtle.exitonclick()

Haz click en el dibujo para cerrar


la ventana
turtle es una biblioteca que te
permite dibujar
Color de la linea
import turtle

turtle.color('green') Distancia que queremos


turtle.forward(100) que avance
turtle.right(45)
turtle.color("blue") Angulo que queremos que
gire hacia la DERECHA
turtle.forward(50)
turtle.right(45)
turtle.color("pink")
turtle.forward(100)
Al final le decimos que se
turtle.exitonclick() salga al hacer un click
Algunas cosas que la tortuga puede
hacer
Comando Acción
right(x) Rota a la derecha x grados
left(x) Rota a la izquierda x grados
color('x') Cambia el color del lápiz a x
forward(x) Mueve hacia adelante x unidades
backward(x) Mueve hacia atrás x unidades
A dibujar!
• Dibuja la figura que
aparece a la derecha
(líneas largas = 200
líneas cortas = 100)

Puedes ver una lista de colores para


la tortuga en:
https://trinket.io/docs/colors
import turtle

turtle.color("green")
turtle.forward(100)
turtle.right(90)
turtle.color("blue")
turtle.forward(200) turtle.color("yellow")
turtle.right(90) turtle.forward(200)
turtle.color("red") turtle.color('black') turtle.color("purple")
turtle.forward(100) turtle.forward(200) turtle.forward(200)
turtle.right(90) turtle.right(270) turtle.right(270)
turtle.color("cyan") turtle.color("orange")
turtle.forward(100) turtle.forward(100)
turtle.right(270) turtle.right(90)

turtle.exitonclick()
Usaremos la tortuga para el
taller 2, para hacer una
carrera de tortugas!
Ejercicios para Cátedra 1
1. Desarrolle un conversor de unidades para km, m y cm. Su algoritmo recibirá un
valor y una unidad de medida, luego debe recibir la unidad de medida a la
cual quiere convertir. Su algoritmo debe ser capaz de reconocer cuando no le
pasan una unidad de medida válida.

2. Una pequeña empresa de alimento de mascotas necesita llevar a cabo un


análisis estadístico con respecto a los productos que está vendiendo, para esto
se solicita crear una aplicación que sea capaz de llevar el registro de cada
cliente que compra en la tienda y saber qué tipo de alimento llevará (Perro,
Gato, otro), además de los kilos que comprará. En el caso de los alimentos de
Gato, estos pueden ser de la marca “Purina” o “MasterCat”
1. No es necesario sacar cálculos de total de precio, ya que, solo nos interesan los datos
solicitados a continuación:
2. El cliente que compro la mayor cantidad de kilos de alimentos, mostrando su nombre,
tipo de alimento y cantidad de kilos comprados.
3. El cliente que compro la menor cantidad de kilos de alimentos, mostrando su nombre,
tipo de alimento y cantidad de kilos comprados
4. El promedio de kilos de alimento para gatos de la marca “Purina” comprados
5. El porcentaje de la cantidad de veces que se compró otro tipo de alimento, respecto al
total de alimentos
Ejercicios para Cátedra 1
3.- El servicio de Registro Civil de Antofagasta ha detectado una serie de inconsistencias relacionadas
con datos provenientes de la reciente aplicación de la Ley de Tenencia Responsable de Mascotas.
Específicamente, los empleados del servicio obtenían regularmente datos de los dueños y mascotas
mediante la información que ellos mismo proveían al momento de inscribir un animal; sin embargo, los
funcionarios no tardaron en darse cuenta de que, en algunos casos, la información entregada por
parte de los dueños no era completa ni del todo fidedigna.
Dado lo anterior, el Registro Civil por primera vez hizo uso de su grupo altamente entrenado de espías
para determinar la situación real de todos los dueños que habían mentido en sus declaraciones.
Básicamente, su objetivo era detectar a los dueños que tuvieran más mascotas de las que hubieran
inscrito, para así cobrar las multas correspondientes. Se ha establecido una multa de treinta mil pesos
($30.000) por cada mascota que no se encuentre debidamente inscrita.
Una vez terminado el proceso de espionaje, el encargado de registrar los datos, confeccionó un
archivo de texto con toda la información obtenida. El archivo (“datos.txt”) está compuesto por cuatro
campos, todos separados por comas. Los campos son los siguientes:
• Nombre: nombre del dueño.
• Edad: edad del dueño.
• cantidadMascotas: cantidad de mascotas inscritas inicialmente por el dueño.
• cantidadMascotasReales: cantidad de mascotas que posee realmente el dueño. Este es el dato
que se obtiene luego del espionaje.
Ejercicios para Cátedra 1
A modo de ejemplo, a continuación, se ilustra un posible archivo con
estas condiciones.

Este archivo indica que Alejandro inscribió legalmente a 2 mascotas,


pero en realidad tiene 4 mascotas, por lo cual existen dos mascotas
que no se han inscrito, y se cursará una multa de 60 mil pesos
(2 x $30.000).
Teniendo en consideración lo expuesto anteriormente, se le ha
pedido que implemente un programa en Python que sea capaz de
determinar las siguientes estadísticas:
1.La cantidad total de infractores a la Ley de Tenencia Responsable de Mascotas.
2.El promedio de edad de los infractores.
3.El promedio de mascotas no inscritas entre todos los infractores.
4.El nombre del dueño con el mayor número de mascotas no inscritas.
5.El nombre del dueño con el menor número de mascotas no inscritas.
6.El nombre de la persona con más edad entre los dueños no infractores.
7.La recaudación total por concepto de multas cursadas.
Ejercicios para Cátedra 1
Se tiene el archivo de texto llamado “albumes.txt” que contiene por cada línea del
archivo el nombre del álbum, la cantidad de canciones que tiene y su precio.
Un ejemplo del archivo podría ser el siguiente:

Según los datos del archivo “álbumes.txt” cree un programa en Python que
cumpla con los siguientes requisitos:
1.Desplegar cuántos álbumes hay en total
2.Cantidad promedio de canciones
3.Desplegar el nombre del álbum que posee menos de 15 canciones y su precio es
inferior o igual a $10.000. Considere que es solo uno.
4.Porcentaje de canciones del álbum con el menor precio con respecto al total de
canciones de todos los álbumes
Ejercicios para Cátedra 1
Dado un archivo con N registros, construya un programa
que busque una palabra ingresada por el usuario dentro
del archivo, si la encuentra debe enviar un mensaje que
diga “logrado” en caso de que la palabra no se encuentre
debe solicitar que se vuelva a ingresar una nueva palabra
para buscar.

También podría gustarte