-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathEjemplo 5_7.py
More file actions
50 lines (45 loc) · 1.62 KB
/
Ejemplo 5_7.py
File metadata and controls
50 lines (45 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# -*- coding: utf-8 -*-
"""
@author: guardati
Ejemplo 5_7
Lanzamiento de excepciones desde una función.
"""
def calcula_promedio(*numeros):
""" Calcula el promedio de los números proporcionados.
Parámetro:
*numeros: cero o varios números, int o float.
Regresa:
El promedio de los números.
Lanza:
ZeroDivisionError: cuando no se proporcionan datos.
ValueError: cuando alguno de los datos proporcionados no es numérico.
"""
try:
suma = 0
for valor in numeros:
suma += valor
return suma / len(numeros)
except ZeroDivisionError:
raise ZeroDivisionError('No hay datos: división entre 0.')
except TypeError:
raise TypeError('Error en los datos: no son numéricos.')
#========================================================
# Pruebas de la función.
#========================================================
# CP1: no se proporcionan datos: división entre 0.
try:
promedio = calcula_promedio()
print('\nCP1 --> El promedio es =', promedio)
except Exception as error:
print('\nCP1 -->', error)
# CP2: se proporcionan datos no numéricos.
try:
promedio = calcula_promedio(4.5, 'hola', 23, -33)
print('CP2 --> El promedio es =', promedio)
except Exception as error:
print('CP2 -->', error)
# CP3: se proporcionan 2 números enteros.
print('CP3 --> El promedio es =', calcula_promedio(4, 8))
# CP4: se proporcionan 8 números reales.
prom = calcula_promedio(3.5, 8.2, -9.6, 12.2, 25.7, 48.7, -41.55, 39.33)
print('CP4 --> El promedio es =', prom)