¡Te damos la bienvenida a este reto!

1

Empezando con Python desde 0

Día 1

2

Variables, funciones y sintaxis básica

3

Tipos de datos: Numbers, Strings y Diccionarios

4

Playground - Retorna el tipo

Día 2

5

Operadores

6

Playground - Calcula la propina

Día 3

7

Condicionales

8

Playground - Averigua si un año es bisiesto

9

Ciclos

10

Playground - Dibuja un triangulo usando bucles

Día 4

11

Listas

12

Encuentra a los gatitos más famosos

13

Diccionarios

14

Obtén el promedio de los estudiantes

15

Tuplas

16

Obten la información de los paquetes

Día 5

17

Calcula la cantidad de letras en una oración

18

Encuentra el mayor palíndromo

Día 6

19

Sets

20

Encuentre la intersección de conjuntos

Día 7

21

List comprehension

22

Encuentra palabras con dos vocales

23

Dictionary Comprehension

24

Calcula la longitud de las palabras

Día 8

25

Funciones Lambda

26

Filtra mensajes de un user específico

27

Higher order functions

28

Crea tu propio método map

Día 9

29

Manejo de Errores y excepciones

30

Maneja correctamente los errores

31

Maneja las excepciones

Día 10

32

Playground - Crea un task manager usando closures

Día 11

33

Lectura de archivos de texto y CSV

Día 12

34

Programación orientada a objetos

35

Crea un auto usando clases

Día 13

36

Abstracción en Python

37

Playground - Crea un sistema de carrito de compras

38

Encapsulamiento en Python

39

Playground - Encapsula datos de los usuarios

Día 14

40

Herencia en Python

41

Playground - Jerarquía de animales usando herencia

Día 15

42

Polimorfismo en Python

43

Playground - Implementa un sistema de pagos

Día 16

44

Estructuras de datos en Python

45

Playground - Crea tu propia lista en python

46

Hash tables en Python

47

Playground - Implementación de una HashTable para Contactos

Día 17

48

Maps en Python

49

Playground - Crea un task manager con Maps

Día 18

50

Singly Linked List en Python

51

Playground - Implementación de una singly linked list

Día 19

52

Stacks en Python

53

Playground - Implementación de un stack

Día 20

54

Queues en Python

55

Playground - Implementación de una queue

Día 21

56

¡Lo lograste!

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

13 Días
18 Hrs
7 Min
29 Seg

Maneja correctamente los errores

30/56

Aportes 35

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?


*
*
*
*
*

def calculate_average(numbers):
  try:
    if len(numbers) == 0:
      raise ValueError("La lista está vacía")
    return sum(numbers) / len(numbers)
  except TypeError:
    raise TypeError("La lista contiene elementos no numéricos")


.
.
.
.
.
.
.
.

def calculate_average(numbers):

    try:
        result = sum(numbers) / len(numbers)
    except ZeroDivisionError:
        raise ValueError("La lista está vacía")
    except TypeError:
        raise TypeError("La lista contiene elementos no numéricos")
    else:
        return result
. . . . . ```js def calculate_average(numbers): if len(numbers)==0: #print("La lista está vacía") raise ValueError("La lista está vacía") son_numericos = all(isinstance(elemento, (int, float)) for elemento in numbers) if not son_numericos: raise TypeError("La lista contiene elementos no numéricos") return round(sum(numbers)/len(numbers),2) ```
![](https://static.platzi.com/media/user_upload/image-de20e26e-dde5-4408-9396-043df0d1cfcb.jpg) ```python def calculate_average(numbers): if not numbers: raise ValueError("La lista está vacía") if not all(isinstance(i, (int, float)) for i in numbers): raise TypeError("La lista contiene elementos no numéricos") return sum(numbers) / len(numbers) ```
def calculate_average(numbers):
    # Tu código aquí 👈
    try:
        suma = 0
        if len(numbers) == 0:
            raise ValueError("La lista está vacía")
        for numero in numbers:
            suma += numero
        return suma/len(numbers)
    except ZeroDivisionError:
        return "La lista está vacía"
    except TypeError:
        raise TypeError("La lista contiene elementos no numéricos")

🛡️🛡️Escudo anti-spoilers🛡️🛡️

Mi solución al reto:

def calculate_average(numbers):
  if not numbers or len(numbers) <= 0:
    raise ValueError("La lista está vacía")
  average = 0
  for n in numbers:
    if not isinstance(n, (int, float)):
      raise TypeError("La lista contiene elementos no numéricos")
    average += n
  return round(average / len(numbers), 2)
from functools import reduce

def calculate_average(numbers):
  
  if (len(numbers)==0):
     raise ValueError("La lista está vacía")

  try:
     #return (list(lambda x,y: x + y, numbers)/len(numbers))
     return (reduce(lambda x,y: x+y,numbers)/len(numbers))
  except TypeError:
     raise TypeError("La lista contiene elementos no numéricos") 
     

if __name__ == '__main__':
    response = calculate_average([1, 2, 3, 4, 5])
    print(response) #Output: 3.0

    response = calculate_average([10, 20, 30, 40, 50])
    print(response) #Output: 30.0

    response = calculate_average([1, 2, '3', 4, 5])
    print(response) #TypeError: La lista contiene elementos no numéricos

    response = calculate_average([])
    print(response) #ValueError: La lista está vacía

mi resultado:
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

def calculate_average(numbers):
  # Tu código aquí 👈
  if len(numbers) == 0:
    raise ValueError('La lista está vacía')
  try:
    return sum(numbers) / len(numbers) 
  except TypeError:
    raise TypeError('La lista contiene elementos no numéricos')
  pass
def calculate_average(numbers):
  if len(numbers) == 0:
    raise ValueError("La lista está vacía")

  total = 0

  for num in numbers:
    if not isinstance(num, (int, float)):
      raise TypeError("La lista contiene elementos no numéricos")
    total += num

  return total / len(numbers)

response = calculate_average([])
print(response)```

My solution
.
.
.
.
.

.
.
.
.
.


.
.
.

def calculate_average(numbers):
    
    if len(numbers) == 0:
        raise ValueError("La lista está vacía")
    
    for i in numbers:
        if type(i) == str or type(i) == bool:
            raise TypeError("La lista contiene elementos no numéricos")
    else:
        return sum(numbers)/len(numbers)


.
.
.
.
.
.
.
.
.
.

Mi solución:

def calculate_average(numbers):
    if not numbers:
        raise ValueError("La lista está vacía")

    total = 0
    count = 0

    for num in numbers:
        if not isinstance(num, (int, float)):
            raise TypeError("La lista contiene elementos no numéricos")

        total += num
        count += 1

    return total / count
def calculate_average(numbers):
  """Function to calculate the average"""
  # average = map(lambda num: num, numbers)
  try:
    if len(numbers) == 0:
      raise ValueError("La lista está vacía")
   
    return sum(num for num in numbers) / len(numbers)

  except TypeError:
    raise TypeError("La lista contiene elementos no numéricos")


response = calculate_average([1, 2, 3, 4, 5])
print(response)


.
.
.
.
.
.
.
.

Listo!!!

Opcion = int(input(“Elija una lista(1,2,3 y 4):”))
if Opcion == 1: Lista = [1, 2, 3, 4, 5]
if Opcion == 2: Lista = [10, 20, 30, 40, 50]
if Opcion == 3: Lista = []
if Opcion == 4: Lista = [1, 2, ‘3’, 4, 5]

def CalculoP(Lista):
try:
Promedio = sum(Lista)/len(Lista)
print(f"El promedio es :{Promedio}")
except ZeroDivisionError:
print(“La lista esta vacía”)
except TypeError:
print(“Hay un String en la Lista”)
CalculoP(Lista)

Solución 😄.
.

.
.
.
.

def calculate_average(numbers):
  try:
    return sum(numbers)/len(numbers)
  
  except TypeError:
    raise TypeError(
      "La lista contiene elementos no numéricos") 
  
  except ZeroDivisionError:
    raise ValueError("La lista está vacía")

Me costó entender que en mi línea 4 y 5 no necesariamente ambos errores tienen que ser ZeroDivisionError o ValueError.

def calculate_average(numbers):
  try:
    return sum(numbers)/len(numbers)
  except ZeroDivisionError:
    raise ValueError('La lista está vacía')
  except TypeError:
    raise TypeError("La lista contiene elementos no numéricos")


Por un buen rato estaba usando condicionales, uno para ver si la lista no tenia elementos y otro para ver si la lista contenia algun elemento no numerico, hasta que me di cuenta que no era necesario ya que las Built-in Exceptions ya consideran esos casos y es solo cuestion de usarlas.

def calculate_average(nums):
  try:
    return sum(nums)/len(nums)
  except ZeroDivisionError:
    raise ValueError('La lista está vacía')
  except TypeError:
    raise TypeError('La lista contiene elementos no numéricos')

EN mi solucion me vi en encesidad de usar una condicion XOR, rar vez me toca usarla, comparto mi solucion:


.
.

def calculate_average(numbers):
  if len(numbers) == 0:
    raise ValueError('La lista está vacía')

  validarTipo = list(filter(lambda x: not (isinstance(x, int) ^isinstance(x, float)), numbers))
  if len(validarTipo) > 0:
    raise TypeError("La lista contiene elementos no numéricos")

  return sum(numbers) / len(numbers)


.
.
.
.
.
.
.
.
.

def calculate_average(numbers):
  try:
    avg = sum(numbers) / len(numbers)
  except ZeroDivisionError:
    raise ValueError('La lista está vacía')
  except TypeError:
    raise TypeError('La lista contiene elementos no numéricos')

  return avg

Aquí mi aporte, al parecer está bien o por lo menos pasó las pruebas jijiji


Mi solución

def calculate_average(numbers):
  if(len(numbers)==0):
    raise ValueError("La lista está vacía")
  try:
    average = sum(numbers)/len(numbers)
  except TypeError:
    raise TypeError("La lista contiene elementos no numéricos")
  else: 
    return average

Dejo por acá mi solución.

def calculate_average(numbers):
  try:
    if len(numbers) == 0:
      raise ValueError('La lista está vacía')
    return sum(numbers)/len(numbers)
  except TypeError:
    raise TypeError('La lista contiene elementos no numéricos')
  pass


.
.
Listo! 🐍👌🏼
.
.
.
.
.
.

def calculate_average(numbers):
  #clausula raise para el caso de que la lista esté vacía
  if numbers == []:
    raise ValueError("La lista está vacía")
  #bloque try-except para manejar el caso de que la lista lance exceptión al querer sumar un valor no numérico
  try:
    return sum(numbers)/len(numbers)
  except TypeError:
    raise TypeError("La lista contiene elementos no numéricos")


.
.
.
.
.
.
.
.
.
.
.

Mi solución 💻 🐍


.
.
.

Solución utilizando condicionales

def calculate_average(numbers):
  if len(numbers) == 0:
    raise ValueError("La lista está vacía") 
  
  for item in numbers:
    if not isinstance(item, (int, float)):
      raise TypeError("La lista contiene elementos no numéricos")

  avg = sum(numbers) / len(numbers)
  return avg

Aqui mi solucion:
.
.
.
.
.
.
.
.

def calculate_average(numbers):
  # Tu código aquí 👈
  if len(set(map(type, numbers))) == 1:
    return sum(numbers) / len(numbers)
  if len(numbers) == 0:
    raise ValueError('La lista está vacía')
  else:
    raise TypeError('La lista contiene elementos no numéricos') 

o
o
o
o
o
o
o
o
def calculate_average(numbers):
try:
if len(numbers) < 1:
raise ValueError
if not all(isinstance(item, (int,float)) for item in numbers):
raise TypeError
except ValueError:
return "La lista está vacía"
except TypeError:
return "La lista contiene elementos no numéricos"
else:
return sum(numbers) / len(numbers)

Mi solucion:
*
*
*
*
*
**
*
*
*
*
*
**

def calculate_average(numbers):
  # Tu código aquí 👈
  if numbers == []:
    raise ValueError("La lista está vacía")
  try:
   return sum(numbers)/len(numbers)
  except TypeError:
    raise  TypeError("La lista contiene elementos no numéricos")


.
.
.
.
.


.
.
.
.
.

def calculate_average(numbers):
  if len(numbers) == 0:
    raise ValueError('La lista está vacía')

  has_numbers = True

  for element in numbers:
    if (type(element) != int and type(element) != float):
      has_numbers = False
      break
  
  if not has_numbers:
    raise TypeError('La lista contiene elementos no numéricos')
  
  return round(sum(numbers) / len(numbers),2)
def calculate_average(numbers):
  # Tu código aquí
  from functools import reduce

  if len(numbers) == 0:
    raise ValueError("La lista está vacía")

  if any(not isinstance(number, (int, float)) for number in numbers):
    raise TypeError("La lista contiene elementos no numéricos")

  output = reduce(lambda x,y: x+y, numbers) / len(numbers)
  return output
  pass


.
.

def calculate_average(numbers):
   if not numbers:
        raise ValueError("La lista está vacía")

   for num in numbers:
      if type(num) != int and type(num) != float:
         raise TypeError("La lista contiene elementos no numéricos")
      
   total = sum(numbers)
   average = total / len(numbers)
   return round(average, 1)
undefined