ÎncepețiÎncepe gratuit

Gestionarea unei erori StopIteration

Clasa Playlist din exercițiul anterior a fost actualizată pentru a afișa un mesaj cu melodia care se redă la momentul respectiv și este prezentată mai jos. Folosind acest iterator personalizat, vei exersa gestionarea elegantă a unei excepții StopIteration. Distracție plăcută!

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

Acest exercițiu face parte din cursul

Programare orientată pe obiecte intermediară în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un obiect Playlist numit classic_rock_playlist alcătuit din titlurile din lista songs; asigură-te că classic_rock_playlist amestecă melodiile aleatoriu.
  • Folosind un bloc try-except în interiorul unei bucle while, redă următoarea melodie din classic_rock_playlist.
  • Actualizează logica din blocul try-except pentru a gestiona o eroare StopIteration, afișând un mesaj și ieșind din buclă.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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!")
		____
Editează și rulează codul