Biblioteka: baza wypożyczeń

Zadanie 3 z 15 · rozdział 17Trudność: 1 z 3dictlistpętlestring

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Ł — czytelnik IMIĘ 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

Wejście
dodaj Jan Hobbit
dodaj Anna Duma i uprzedzenie
dodaj Jan Władca Pierścieni
lista Jan
zwróć Jan Hobbit
lista Jan
lista Anna
koniec
Wyjście
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

Potrzebujesz teorii?

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.

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 uruchomiono
Wejście
dodaj Jan Hobbit
dodaj Jan Dune
lista Jan
zwróć Jan Hobbit
lista Jan
koniec
Oczekiwane wyjście
Książki wypożyczone przez Jan: Hobbit, Dune
Książki wypożyczone przez Jan: Dune

Test 2

Nie uruchomiono
Wejście
lista Anna
dodaj Anna Solaris
lista Anna
koniec
Oczekiwane wyjście
Książki wypożyczone przez Anna: brak
Książki wypożyczone przez Anna: Solaris

Test 3

Nie uruchomiono
Wejście
dodaj Ola Pan Tadeusz
zwróć Ola Lalka
lista Ola
zwróć Ola Pan Tadeusz
lista Ola
koniec
Oczekiwane wyjście
Książki wypożyczone przez Ola: Pan Tadeusz
Książki wypożyczone przez Ola: brak

Test 4

Nie uruchomiono
Wejście
koniec
Oczekiwane wyjście
(brak)

Test 5

Nie uruchomiono
Wejście
dodaj Jan Hobbit
dodaj Jan Dune
dodaj Jan Hobbit
zwróć Jan Hobbit
lista Jan
lista Ewa
zwróć Ewa Dune
koniec
Oczekiwane wyjście
Książki wypożyczone przez Jan: Dune, Hobbit
Książki wypożyczone przez Ewa: brak

Test 6

Nie uruchomiono
Wejście
dodaj Ala Lalka
dodaj Bartek Quo vadis
dodaj Ala Ferdydurke
zwróć Bartek Lalka
lista Bartek
lista Ala
koniec
Oczekiwane wyjście
Książki wypożyczone przez Bartek: Quo vadis
Książki wypożyczone przez Ala: Lalka, Ferdydurke
Uruchom z własnymi danymi