Obsługa błędu StopIteration
Klasa Playlist z poprzedniego ćwiczenia została zaktualizowana – teraz wyświetla komunikat z nazwą aktualnie odtwarzanego utworu. Poniżej znajdziesz jej kod. Korzystając z tego niestandardowego iteratora, przećwiczysz poprawną obsługę wyjątku StopIteration. Miłej zabawy!
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
To ćwiczenie jest częścią kursu
Programowanie obiektowe w Pythonie – poziom średnio zaawansowany
Instrukcje do ćwiczenia
- Utwórz obiekt
Playlisto nazwieclassic_rock_playlist, korzystając z tytułów zawartych na liściesongs. Pamiętaj, aby włączyć losowe odtwarzanie wclassic_rock_playlist. - Używając bloku
try-exceptwewnątrz pętliwhile, odtwórz kolejny utwór zclassic_rock_playlist. - Uzupełnij logikę bloku
try-excepto obsługę błęduStopIteration– wyświetl odpowiedni komunikat i przerwij pętlę.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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!")
____