MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Buat Playlist bernama classic_rock_playlist yang terdiri dari judul-judul dalam daftar songs; pastikan classic_rock_playlist melakukan pengacakan lagu.
  • Dengan menggunakan blok try-except di dalam loop while, putar lagu berikutnya dalam classic_rock_playlist.
  • Perbarui logika try-except untuk menangani error StopIteration, mencetak sebuah pesan, lalu keluar dari loop dengan break.

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!")
		____
Edit dan Jalankan Kode