Advertisement
teslariu

mascotas

Aug 2nd, 2023
1,396
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.87 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import os
  4.  
  5.  
  6. """
  7. Script en consola para registrar ventas en una tienda de mascotas
  8. El programa debe:
  9. - ingresar raza, precio y tipo de pago (contado o crédito).HECHO OK
  10. - mostrar lista de mascotas vendidas HECHO OK
  11.  
  12. - usar funciones   HECHO OK
  13. - debe validar datos (no debe permitir datos incorrectos) HECHO OK
  14. - guardar lista de mascotas vendidas en archivo de texto HECHO OK
  15. - usar try/except HECHO OK
  16.  
  17. Pasos a seguir:
  18. 1) Hacer el template while True
  19. 2) Definir la estructura de datos
  20.    * guardar una lista de mascotas vendidas: lista de diccionarios
  21.    mascotas = [
  22.        {"raza": "Doberman", "precio": 25000, "pago":"contado"},
  23.        {"raza": "Shitzu", "precio": 35000, "pago":"contado"},
  24.        {"raza": "Labrador", "precio": 50000, "pago":"credito"},
  25.    ]
  26.  
  27.  
  28. """
  29. def menu():
  30.     print("""
  31.    Menu del programa:
  32.    1. Ingresar una mascota
  33.    2. Mostrar lista de mascotas vendidas
  34.    3. Salir
  35.    """)
  36.     opcion = input("Seleccione una opción: ")
  37.     return opcion  
  38.  
  39.    
  40. def borrar_pantalla():
  41.     if os.name == "posix":
  42.         os.system("clear")
  43.     else:
  44.         os.system("cls")
  45.  
  46.  
  47. def validar_precio():
  48.     while True:
  49.         try:
  50.             precio = int(input("Ingrese el precio: "))
  51.         except ValueError:
  52.             print("Debe ingresar un entero mayor a cero")
  53.         else:
  54.             if precio <= 0:
  55.                 print("Error, ha ingresado un precio inválido")
  56.             else:
  57.                 return precio
  58.            
  59.  
  60. def validar_pago():
  61.     while True:
  62.         pago = input("Ingrese la forma de pago: 1.Contado 2.Crédito: ")
  63.         if pago == "1":
  64.             return "contado"
  65.         elif pago == "2":
  66.             return "crédito"
  67.         else:
  68.             print("Forma de pago inexistente")
  69.  
  70.  
  71. def validar_raza():
  72.     while True:
  73.         raza = input("Ingrese la raza: ")
  74.         if raza.replace(" ","").isalpha():
  75.             return raza
  76.         else:
  77.             print("Raza inválida")
  78.  
  79. """
  80. # Suponiendo que no permitimos repetir la raza:
  81. def validar_raza(lista):
  82.    # creo una lista actualizada de razas
  83.    razas = []
  84.    for mascota in lista:
  85.        razas.append(mascota['raza'])
  86.        
  87.    # valido la raza    
  88.    while True:
  89.        r = input("Ingrese la raza: ")
  90.        if r.replace(" ","").isalpha() and r not in razas:
  91.            return r
  92.        else:
  93.            print("Raza inválida o ya existente")
  94. """
  95.  
  96.  
  97.  
  98. def ingresar_mascota():
  99.     raza = validar_raza()
  100.     precio = validar_precio()
  101.     pago = validar_pago()
  102.     return {"raza":raza, "precio":precio, "pago":pago}
  103.  
  104.  
  105.  
  106. def imprimir_mascotas():
  107.     try:
  108.         with open("mascotas.txt") as f:
  109.             print(f.read())
  110.     except FileNotFoundError:
  111.         print("No hay mascotas vendidas")
  112.  
  113.  
  114.  
  115. def guardar(mascota):
  116.     try:
  117.         with open("mascotas.txt","x") as f:
  118.             f.write(f"Raza: {mascota['raza']} - Precio: ${mascota['precio']} - Tipo de pago: {mascota['pago']}\n")
  119.                
  120.     except FileExistsError:
  121.         with open("mascotas.txt","a") as f:
  122.             f.write(f"Raza: {mascota['raza']} - Precio: ${mascota['precio']} - Tipo de pago: {mascota['pago']}\n")
  123.  
  124.  
  125.  
  126. # Creo la lista de mascotas vacía
  127. lista_mascotas = []
  128.  
  129.  
  130. while True:
  131.     borrar_pantalla()
  132.      
  133.     opcion = menu()
  134.    
  135.     if opcion == "1":
  136.         mascota = ingresar_mascota()
  137.         lista_mascotas.append(mascota)
  138.         guardar(mascota)
  139.         input("Mascota guardada. Presione cualquier tecla para continuar...")
  140.        
  141.     elif opcion == "2":
  142.         imprimir_mascotas()
  143.         input("Presione cualquier tecla para continuar...")
  144.        
  145.     elif opcion == "3":
  146.         print("Hasta pronto...")
  147.         break
  148.        
  149.     else:
  150.         input("Opción incorrecta. Presione cualquier tecla para continuar...")
  151.        
  152.    
  153.    
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement