Mulai sekarangMulai 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 merupakan bagian dari kursus

Pemrograman Berorientasi Objek Tingkat Menengah di Python

Lihat Kursus

Instruksi 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 langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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