Обработка ошибки StopIteration
Класс Playlist из предыдущего упражнения был обновлён: теперь он выводит сообщение с названием текущей воспроизводимой песни. Код класса приведён ниже. С помощью этого пользовательского итератора вы потренируетесь корректно обрабатывать исключение StopIteration. Приятного прослушивания!
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
Это упражнение является частью курса
Объектно-ориентированное программирование на Python: средний уровень
Инструкции к упражнению
- Создайте объект
Playlistс именемclassic_rock_playlistна основе названий из спискаsongs; убедитесь, что вclassic_rock_playlistвключено перемешивание треков. - Используя блок
try-exceptвнутри циклаwhile, воспроизведите следующую песню изclassic_rock_playlist. - Дополните логику блока
try-exceptобработкой ошибкиStopIteration: выведите сообщение и прервите выполнение цикла.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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!")
____