Kom igångKom igång gratis

Hantera ett StopIteration-fel

Klassen Playlist från föregående övning har uppdaterats för att skriva ut ett meddelande med den låt som spelas för tillfället, och visas nedan. Med den här egna iteratorn får du öva på att hantera ett StopIteration-undantag på ett kontrollerat sätt. Kör igång!

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

Den här övningen är en del av kursen

Objektorienterad programmering i Python – fortsättningskurs

Visa kurs

Övningsinstruktioner

  • Skapa en Playlist med namnet classic_rock_playlist bestående av titlarna i listan songs. Se till att classic_rock_playlist blandar låtarna.
  • Använd ett try-except-block inuti en while-loop för att spela nästa låt i classic_rock_playlist.
  • Uppdatera try-except-logiken så att den hanterar ett StopIteration-fel – skriv ut ett meddelande och avsluta loopen.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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!")
		____
Redigera och kör kod