Robię kurs w Sololern. Stanąłem na zadaniu:
Tworzysz odtwarzacz muzyczny, który umożliwia utworzenie listy odtwarzania utworów.
Podany kod definiuje klasy Player i Track, gdzie Player jest połączoną listą, łączącą ze sobą obiekty Track.
Kod pobiera kilka utworów z danych wprowadzonych przez użytkownika i dodaje je do listy odtwarzania. Musisz iterować po połączonej liście i wyprowadzić wszystkie ścieżki z listy odtwarzania w kolejności odtwarzania.
Użyj pętli while , aby iterować po połączonej liście.
class Track:
def __init__(self, title, next):
self.title = title
self.next = next
class Player:
def __init__(self):
self.head = None
def add_at_end(self, title):
if not self.head:
self.head = Track(title, None)
return
curr = self.head
while curr.next:
curr = curr.next
curr.next = Track(title, None)
def print_list(self):
x = self.head
while x:
print(x.title)
x = x.next
p = Player()
while True:
x = input()
if x == 'end':
break
p.add_at_end(x)
print(p.print_list())
Zrobiłem powyższy kod, ale w wyniku oprócz oczekiwanych wartości (listy utworów podanych jako x = input ()), w momencie odczytania wartości 'end' podaje w wyniku wartość 'None'.
Wartości wprowadzane (x = input()):
Back in Black
My Generation
London Calling
Believe
end
Wartości oczekiwane print(p.print_list()):
Back in Black
My Generation
London Calling
Believe
A na koniec drukuje "None". Nie wiem jak tego się pozbyć.
Proszę o jakąś wskazówkę.