Histogram znaków w słowie

Zadanie 6 z 15 · rozdział 17Trudność: 1 z 3dictstring

Treść zadania

Wczytaj napis. Utwórz słownik, w którym kluczami są znaki napisu, a wartościami liczby ich wystąpień, i wypisz go.

Dane wejściowe

  • 1. linia: napis

Dane wyjściowe

Słownik w postaci {'znak': liczba, …} — znaki w kolejności pierwszego wystąpienia w napisie.

Ograniczenia

  • napis ma od 1 do 100 znaków, nie zaczyna się ani nie kończy spacją i nie zawiera apostrofów, cudzysłowów ani znaku \

Uwagi

  • Liczą się wszystkie znaki, także spacje (klucz ' ') i cyfry.
  • Wielkość liter ma znaczenie: a i A to różne znaki.

Przykład

Wejście
klasa
Wyjście
{'k': 1, 'l': 1, 'a': 2, 's': 1}

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
aba
Oczekiwane wyjście
{'a': 2, 'b': 1}

Test 2

Nie uruchomiono
Wejście
abBA
Oczekiwane wyjście
{'a': 1, 'b': 1, 'B': 1, 'A': 1}

Test 3

Nie uruchomiono
Wejście
x
Oczekiwane wyjście
{'x': 1}

Test 4

Nie uruchomiono
Wejście
ala ma kota
Oczekiwane wyjście
{'a': 4, 'l': 1, ' ': 2, 'm': 1, 'k': 1, 'o': 1, 't': 1}

Test 5

Nie uruchomiono
Wejście
mississippi
Oczekiwane wyjście
{'m': 1, 'i': 4, 's': 4, 'p': 2}

Test 6

Nie uruchomiono
Wejście
2024!
Oczekiwane wyjście
{'2': 2, '0': 1, '4': 1, '!': 1}
Uruchom z własnymi danymi