Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import os
- """
- Script en consola para registrar ventas en una tienda de mascotas
- El programa debe:
- - ingresar raza, precio y tipo de pago (contado o crédito).HECHO OK
- - mostrar lista de mascotas vendidas HECHO OK
- - usar funciones HECHO OK
- - debe validar datos (no debe permitir datos incorrectos) HECHO OK
- - guardar lista de mascotas vendidas en archivo de texto HECHO OK
- - usar try/except HECHO OK
- Pasos a seguir:
- 1) Hacer el template while True
- 2) Definir la estructura de datos
- * guardar una lista de mascotas vendidas: lista de diccionarios
- mascotas = [
- {"raza": "Doberman", "precio": 25000, "pago":"contado"},
- {"raza": "Shitzu", "precio": 35000, "pago":"contado"},
- {"raza": "Labrador", "precio": 50000, "pago":"credito"},
- ]
- """
- def menu():
- print("""
- Menu del programa:
- 1. Ingresar una mascota
- 2. Mostrar lista de mascotas vendidas
- 3. Salir
- """)
- opcion = input("Seleccione una opción: ")
- return opcion
- def borrar_pantalla():
- if os.name == "posix":
- os.system("clear")
- else:
- os.system("cls")
- def validar_precio():
- while True:
- try:
- precio = int(input("Ingrese el precio: "))
- except ValueError:
- print("Debe ingresar un entero mayor a cero")
- else:
- if precio <= 0:
- print("Error, ha ingresado un precio inválido")
- else:
- return precio
- def validar_pago():
- while True:
- pago = input("Ingrese la forma de pago: 1.Contado 2.Crédito: ")
- if pago == "1":
- return "contado"
- elif pago == "2":
- return "crédito"
- else:
- print("Forma de pago inexistente")
- def validar_raza():
- while True:
- raza = input("Ingrese la raza: ")
- if raza.replace(" ","").isalpha():
- return raza
- else:
- print("Raza inválida")
- """
- # Suponiendo que no permitimos repetir la raza:
- def validar_raza(lista):
- # creo una lista actualizada de razas
- razas = []
- for mascota in lista:
- razas.append(mascota['raza'])
- # valido la raza
- while True:
- r = input("Ingrese la raza: ")
- if r.replace(" ","").isalpha() and r not in razas:
- return r
- else:
- print("Raza inválida o ya existente")
- """
- def ingresar_mascota():
- raza = validar_raza()
- precio = validar_precio()
- pago = validar_pago()
- return {"raza":raza, "precio":precio, "pago":pago}
- def imprimir_mascotas():
- try:
- with open("mascotas.txt") as f:
- print(f.read())
- except FileNotFoundError:
- print("No hay mascotas vendidas")
- def guardar(mascota):
- try:
- with open("mascotas.txt","x") as f:
- f.write(f"Raza: {mascota['raza']} - Precio: ${mascota['precio']} - Tipo de pago: {mascota['pago']}\n")
- except FileExistsError:
- with open("mascotas.txt","a") as f:
- f.write(f"Raza: {mascota['raza']} - Precio: ${mascota['precio']} - Tipo de pago: {mascota['pago']}\n")
- # Creo la lista de mascotas vacía
- lista_mascotas = []
- while True:
- borrar_pantalla()
- opcion = menu()
- if opcion == "1":
- mascota = ingresar_mascota()
- lista_mascotas.append(mascota)
- guardar(mascota)
- input("Mascota guardada. Presione cualquier tecla para continuar...")
- elif opcion == "2":
- imprimir_mascotas()
- input("Presione cualquier tecla para continuar...")
- elif opcion == "3":
- print("Hasta pronto...")
- break
- else:
- input("Opción incorrecta. Presione cualquier tecla para continuar...")
Advertisement
Comments
-
- <script src="https://pastebin.com/embed_js/88wVdZxP"></script>
Add Comment
Please, Sign In to add comment
Advertisement