ПочатиПочніть безкоштовно

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