Gérer une erreur StopIteration
La classe Playlist de l’exercice précédent a été mise à jour pour afficher un message indiquant le morceau en cours de lecture, comme ci-dessous. Avec cet itérateur personnalisé, vous allez vous exercer à gérer proprement une exception StopIteration. Amusez-vous bien !
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
Cet exercice fait partie du cours
Programmation orientée objet intermédiaire en Python
Instructions
- Créez une
Playlistappeléeclassic_rock_playlistcomposée des titres de la listesongs; veillez à ce queclassic_rock_playlistmélange les morceaux. - À l’aide d’un bloc
try-exceptdans une bouclewhile, lisez le morceau suivant declassic_rock_playlist. - Mettez à jour la logique
try-exceptpour gérer une erreurStopIteration, afficher un message, puis sortir de la boucle avecbreak.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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!")
____