LoslegenKostenlos loslegen

Einen StopIteration-Fehler behandeln

Die Playlist-Klasse aus der vorherigen Übung wurde so angepasst, dass sie eine Nachricht mit dem aktuell abgespielten Song ausgibt, und ist unten gezeigt. Mit diesem benutzerdefinierten Iterator übst du, eine StopIteration-Exception elegant zu behandeln. Viel Spaß!

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

Diese Übung ist Teil des Kurses

Fortgeschrittene objektorientierte Programmierung in Python

Kurs anzeigen

Anleitung zur Übung

  • Erstelle eine Playlist namens classic_rock_playlist aus den Titeln in der Liste songs; achte darauf, dass classic_rock_playlist die Songs mischt.
  • Verwende in einer while-Schleife einen try-except-Block, um den nächsten Song in classic_rock_playlist abzuspielen.
  • Erweitere die try-except-Logik, um einen StopIteration-Fehler zu behandeln, gib eine Nachricht aus und brich die Schleife ab.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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!")
		____
Code bearbeiten und ausführen