teslariu

func-excepciones

Feb 10th, 2021
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.59 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. """
  5. Crear un programa que solicite dos numeros en consola e imprima el
  6. resultado de las cuatro operaciones básicas
  7. >>> Escribir un nro: hola
  8. >>> Error: no ha ingresado un nro.
  9. >>> Escribir un nro: 7
  10. >>> Escribir otro nro: 5
  11. >>> 7 + 5 = 12
  12. >>> 7 - 5 = 2
  13. >>> 7 * 5 = 35
  14. >>> 7 / 5 = 1.4
  15. NOTA: tener en cuenta los errores y no usar condicionales para tratar los
  16. errores
  17. """
  18. def ingresar_nro(orden):
  19.     """Función que valida y asigna un nro a una variable
  20.    Tiene como argumento el orden del nro:
  21.    EJ: 1º numero, 2º numero..... <orden>º numero..."""
  22.     while True:
  23.         try:
  24.             numero = float(input(f"Ingrese el {orden}º nro: "))
  25.         except ValueError:
  26.             print("Error: no ha ingresado un numero")
  27.         else:
  28.             return numero
  29.            
  30.  
  31. def suma(a,b):
  32.     return a + b
  33.    
  34. def resta(a,b):
  35.     return a - b
  36.    
  37. def producto(a,b):
  38.     return a * b
  39.    
  40. def cociente(a,b):
  41.     if b != 0:
  42.         return a / b
  43.     else:
  44.         raise ZeroDivisionError
  45.  
  46.  
  47. while True:
  48.     a = ingresar_nro(1)
  49.     b = ingresar_nro(2)
  50.    
  51.            
  52.     print(f"{a} + {b} = {suma(a,b)}")
  53.     print(f"{a} - {b} = {resta(a,b)}")
  54.     print(f"{a} * {b} = {producto(a,b)}")
  55.    
  56.     try:
  57.         print(f"{a} / {b} = {cociente(a,b)}")
  58.     except ZeroDivisionError:
  59.         print(f"{a} / {b} : No se puede dividir por cero")
  60.        
  61.    
  62.     opcion = input("\nPresione cualquier tecla para continuar, 'x' para salir: ")
  63.     if opcion.casefold() == "x":
  64.         print("Adios....")
  65.         break
  66.  
Advertisement
Add Comment
Please, Sign In to add comment