НачатьНачать бесплатно

Обработка ошибки 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!")
		____
Редактировать и запускать код