CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Créez une Playlist appelée classic_rock_playlist composée des titres de la liste songs ; veillez à ce que classic_rock_playlist mélange les morceaux.
  • À l’aide d’un bloc try-except dans une boucle while, lisez le morceau suivant de classic_rock_playlist.
  • Mettez à jour la logique try-except pour gérer une erreur StopIteration, afficher un message, puis sortir de la boucle avec break.

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!")
		____
Modifier et exécuter le code