👤

PYTHON W pliku slowa.txt znajduje się 1000 słów, a w pliku nowe.txt znajduje się 25 słów. W obu plikach wszystkie słowa składają się z małych liter alfabetu łacińskiego. Żadne z tych słów nie ma więcej niż 12 znaków, a każde jest zapisane w osobnym wierszu.


a) Dla każdego słowa z pliku nowe.txt wypisz to słowo oraz dwie liczby rozdzielone spacją oznaczające: • liczbę wystąpień danego słowa w pliku slowa.txt, • liczbę wystąpień odbicia lustrzanego danego słowa w pliku slowa.txt. Uwaga: Na przykład dla słowa „mapa” odbiciem lustrzanym słowa jest „apam”. Słowo jednoliterowe jest samo dla siebie lustrzanym odbiciem.


Napisz program, który da odpowiedzi do poniższych zadań. Każdą odpowiedź zapisz w pliku wynik5.txt i poprzedź ją numerem oznaczającym zadanie.


b) Dla każdej liczby naturalnej n z przedziału <1, 12> wyznacz liczbę wierszy w pliku slowa.txt, zawierających słowa n-literowe. Wypisz w osobnych wierszach pary: liczba n oraz liczba wierszy z n-literowymi słowami.


PYTHON W Pliku Slowatxt Znajduje Się 1000 Słów A W Pliku Nowetxt Znajduje Się 25 Słów W Obu Plikach Wszystkie Słowa Składają Się Z Małych Liter Alfabetu Łacińsk class=
PYTHON W Pliku Slowatxt Znajduje Się 1000 Słów A W Pliku Nowetxt Znajduje Się 25 Słów W Obu Plikach Wszystkie Słowa Składają Się Z Małych Liter Alfabetu Łacińsk class=

Odpowiedź :

a)

from collections import Counter

# otwórz i odczytaj plik slowa.txt

slowa_plik = open("słowa.txt", "r")

slowa = slowa_plik.read().split("\n")

slowa_plik.close()

# pogrupuj i policz które słowo ile razy wystąpiło

licznik = Counter(slowa);

# odwróć słowa

slowa_odwr = []

for slowo in slowa:

 slowa_odwr.append(slowo[::-1])

# pogrupuj i policz które odwrócone słowa ile razy wystąpiły

licznik_odwr = Counter(slowa_odwr)

# otwórz i odczytaj plik nowe.txt

nowe_plik = open("nowe.txt", "r")

nowe = nowe_plik.read().split("\n")

nowe_plik.close()

# pobierz z "licznik" i "licznik_odwr" ilość wystąpień na postawie słów występujących w nowe.txt

odpowiedz = {}

for slowo in nowe:

 print(slowo + " " + str(licznik[slowo]) + " " + str(licznik_odwr[slowo]))

b)

# otwórz i odczytaj plik slowa.txt

slowa_plik = open("słowa.txt", "r")

slowa = slowa_plik.read().split("\n")

slowa_plik.close()

# stwórz listę umożliwiającą liczenie

licznik = [0]*12

# zwiększ ten element listy o 1, którego index-1 jest równy długości słowa

for slowo in slowa:

 licznik[len(slowo)-1] += 1

# wypisz wynik

for i in range(0,11):

 print( str(licznik[i]) + ' słów ' + str(i+1) + '-literowych' )

Wyniki z printa() możesz skopiować do pliku wynik5.txt (co jest zgodne ze standardami na maturze)