• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kod z zakresu połączonej listy

Object Storage Arubacloud
0 głosów
90 wizyt
pytanie zadane 11 kwietnia 2023 w Python przez Wojciech Staszczyk Nowicjusz (120 p.)

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ę. 

1 odpowiedź

+2 głosów
odpowiedź 11 kwietnia 2023 przez adrian17 Ekspert (344,860 p.)
print(p.print_list())

Printujesz to co zwraca metoda print_list - ale print_list nic nie zwraca, stąd None.

Po prostu wyrzuć ten print().

komentarz 11 kwietnia 2023 przez Wojciech Staszczyk Nowicjusz (120 p.)
Dziękuję bardzo. To takie prost, a jednak to przeoczyłem. Pozdrawiam

Podobne pytania

0 głosów
2 odpowiedzi 3,346 wizyt
pytanie zadane 4 lutego 2018 w SQL, bazy danych przez `Krzychuu Stary wyjadacz (13,940 p.)
0 głosów
1 odpowiedź 189 wizyt
pytanie zadane 14 grudnia 2022 w C# przez Mati336 Użytkownik (560 p.)

92,566 zapytań

141,420 odpowiedzi

319,615 komentarzy

61,952 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...