Biblioteka: baza wypożyczeń
Treść zadania
Prowadź bazę wypożyczeń biblioteki jako słownik imię → lista wypożyczonych tytułów. Wczytuj komendy (każda w osobnej linii), aż do komendy koniec:
dodaj IMIĘ TYTUŁ— czytelnikIMIĘwypożycza książkęTYTUŁ(dopisz ją na koniec jego listy),zwróć IMIĘ TYTUŁ— czytelnik oddaje książkę (usuń ją z jego listy; jeśli jej tam nie ma, nic się nie dzieje),lista IMIĘ— wypisz książki wypożyczone przez czytelnika.
Po komendzie lista IMIĘ wypisz jedną linię:
Książki wypożyczone przez IMIĘ: t1, t2, …— tytuły w kolejności wypożyczenia, oddzielone przecinkiem i spacją,Książki wypożyczone przez IMIĘ: brak— jeśli czytelnik nie ma żadnej książki albo nie występuje w bazie.
Dane wejściowe
Kolejne linie z komendami; ostatnia linia to koniec.
IMIĘto jedno słowo (bez spacji).TYTUŁto cała reszta linii po imieniu — może zawierać spacje (bez cudzysłowów).
Dane wyjściowe
Po jednej linii dla każdej komendy lista; pozostałe komendy niczego nie wypisują.
Ograniczenia
- co najwyżej 100 komend
Uwagi
- Linię komendy rozbij na co najwyżej trzy części:
linia.split(maxsplit=2). - Czytelnik może wypożyczyć kilka egzemplarzy tego samego tytułu — wtedy tytuł występuje na liście kilka razy, a
zwróćusuwa tylko jeden egzemplarz (pierwsze wystąpienie).
Przykład
dodaj Jan Hobbit dodaj Anna Duma i uprzedzenie dodaj Jan Władca Pierścieni lista Jan zwróć Jan Hobbit lista Jan lista Anna koniec
Książki wypożyczone przez Jan: Hobbit, Władca Pierścieni Książki wypożyczone przez Jan: Władca Pierścieni Książki wypożyczone przez Anna: Duma i uprzedzenie
Zasady obowiązujące w rozdziale 17
Zadania w tym rozdziale ćwiczą pracę ze słownikami (dict): tworzenie, dodawanie i usuwanie par, zliczanie wystąpień oraz grupowanie danych według klucza.
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem: czyta standardowe wejście (stdin) i wypisuje wynik na standardowe wyjście (stdout).
Konwencje wspólne:
- Dane wczytuj dokładnie w kolejności podanej w sekcji Wejście; jeśli w jednej linii jest kilka wartości — rozbij ją po spacjach.
- Jeśli wynikiem jest słownik, wypisz go tak, jak robi to
print(slownik)w Pythonie:{klucz: wartość, klucz: wartość}— pary oddzielone przecinkiem i spacją, po dwukropku spacja, klucze i wartości napisowe w apostrofach (np.{'ala': 2, 'ma': 1}), liczby bez apostrofów (np.{1: 1, 2: 4}), pusty słownik to{}. - Kolejność par w wypisanym słowniku to kolejność, w jakiej klucze były do niego dodawane (tak zachowuje się słownik w Pythonie).
- Program nie wypisuje komunikatów typu „Podaj liczbę:”.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomionododaj Jan Hobbit dodaj Jan Dune lista Jan zwróć Jan Hobbit lista Jan koniec
Książki wypożyczone przez Jan: Hobbit, Dune Książki wypożyczone przez Jan: Dune
Test 2
Nie uruchomionolista Anna dodaj Anna Solaris lista Anna koniec
Książki wypożyczone przez Anna: brak Książki wypożyczone przez Anna: Solaris
Test 3
Nie uruchomionododaj Ola Pan Tadeusz zwróć Ola Lalka lista Ola zwróć Ola Pan Tadeusz lista Ola koniec
Książki wypożyczone przez Ola: Pan Tadeusz Książki wypożyczone przez Ola: brak
Test 4
Nie uruchomionokoniec
(brak)
Test 5
Nie uruchomionododaj Jan Hobbit dodaj Jan Dune dodaj Jan Hobbit zwróć Jan Hobbit lista Jan lista Ewa zwróć Ewa Dune koniec
Książki wypożyczone przez Jan: Dune, Hobbit Książki wypożyczone przez Ewa: brak
Test 6
Nie uruchomionododaj Ala Lalka dodaj Bartek Quo vadis dodaj Ala Ferdydurke zwróć Bartek Lalka lista Bartek lista Ala koniec
Książki wypożyczone przez Bartek: Quo vadis Książki wypożyczone przez Ala: Lalka, Ferdydurke