ComenzarEmpieza gratis

Cómo manejar un error StopIteration

La clase Playlist del ejercicio anterior se ha actualizado para imprimir un mensaje con la canción actual que se está reproduciendo y se muestra a continuación. Usando este iterador personalizado, practicarás cómo manejar con elegancia una excepción StopIteration. ¡A por ello!

class Playlist:
  def __init__(self, songs, shuffle=False):
    self.songs = songs
    self.index = 0

    if shuffle:
      random.shuffle(self.songs)

  def __iter__(self):
    return self

  def __next__(self):
    if self.index >= len(self.songs):
      raise StopIteration

    print(f"Playing {self.songs[self.index]}")
    self.index += 1

Este ejercicio forma parte del curso

Programación orientada a objetos intermedia en Python

Ver curso

Instrucciones del ejercicio

  • Crea una Playlist llamada classic_rock_playlist a partir de los títulos de la lista songs; asegúrate de que classic_rock_playlist mezcle las canciones.
  • Usando un bloque try-except dentro de un bucle while, reproduce la siguiente canción de classic_rock_playlist.
  • Actualiza la lógica de try-except para manejar un error StopIteration, imprimir un mensaje y salir del bucle con break.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Create a classic rock playlist using the songs list
songs = ["Hooked on a Feeling", "Yesterday", "Mr. Blue Sky"]
____ = ____(____, ____=True)

while True:
	____:
		# Play the next song in the playlist
		next(____)
		
	# If there is a StopIteration error, print a message and
    # stop the playlist
	____ ____:
		____("Reached end of playlist!")
		____
Editar y ejecutar código