Обробка помилки 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!")
____