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
Instrucciones del ejercicio
- Crea una
Playlistllamadaclassic_rock_playlista partir de los títulos de la listasongs; asegúrate de queclassic_rock_playlistmezcle las canciones. - Usando un bloque
try-exceptdentro de un buclewhile, reproduce la siguiente canción declassic_rock_playlist. - Actualiza la lógica de
try-exceptpara manejar un errorStopIteration, imprimir un mensaje y salir del bucle conbreak.
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!")
____