Menangani error StopIteration
Kelas Playlist dari latihan sebelumnya telah diperbarui untuk mencetak pesan yang menyertakan lagu yang sedang diputar, dan ditampilkan di bawah ini. Dengan menggunakan iterator kustom ini, Anda akan berlatih menangani pengecualian StopIteration secara elegan. Selamat mencoba!
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
Latihan ini adalah bagian dari kursus
Pemrograman Berorientasi Objek Tingkat Menengah di Python
Petunjuk latihan
- Buat
Playlistbernamaclassic_rock_playlistyang terdiri dari judul-judul dalam daftarsongs; pastikanclassic_rock_playlistmelakukan pengacakan lagu. - Dengan menggunakan blok
try-exceptdi dalam loopwhile, putar lagu berikutnya dalamclassic_rock_playlist. - Perbarui logika
try-exceptuntuk menangani errorStopIteration, mencetak sebuah pesan, lalu keluar dari loop denganbreak.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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!")
____