Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 1, 2017 09:10:57

Lena13_08
Зарегистрирован: 2017-10-14
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Подсчитать буквы в тексте(кодировка)

Очень нужна помощь, два дня ищу не могу найти ответ.
В тексте нужно подсчитать частоту каждой букви.
Большие и маленькие должны подсчитываться как одинаковые, но буквы (è, à, ò, ì, ù ) и ( a, i, o,u,e) как различные.
Я знаю что можно просто подсчитать буквы в цыкле.с

     S.lower().count()
   
и я решу проблему с большими буквами, но с акцентом?
Ps. Нельзя использовать библиотеки питона

Офлайн

#2 Ноя. 1, 2017 09:29:32

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Подсчитать буквы в тексте(кодировка)

 s = "JOHASNdcjksdfn vsdfhè, à,ò,ì, ù ваыпы è, à, ò, ì, ùваыпрввYH fvgdfdfghbfghb˙©©¬≥˚∆©ƒ∂˚…hgty©ø˚µ"
lower = s.lower()
for i in set(lower):
    print(i, "=", lower.count(i))



Офлайн

#3 Ноя. 1, 2017 09:36:14

Lena13_08
Зарегистрирован: 2017-10-14
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Подсчитать буквы в тексте(кодировка)

Это не будет работать, мой текст в файле, который проходит разкодировку ( думаю utf-8), и все акценты удаляются пр открытии файла.
Но спасибо за попытку

Офлайн

#4 Ноя. 1, 2017 09:47:23

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Подсчитать буквы в тексте(кодировка)

Lena13_08
давайте сюда файл



Офлайн

#5 Ноя. 1, 2017 10:38:29

Lena13_08
Зарегистрирован: 2017-10-14
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Подсчитать буквы в тексте(кодировка)

Я прикрепила пример файла который нам дали для теста нашей программы. Не хочу казаться лентяйкой поэтому обьясняю: программу я уже написала она 1)читает из командной строки файлы(их несколько) и разбивает его на отдельные буквы, подсчитывает их 2) отдельная функция потом считает расстояние между векторами *которые и хранят эти частоты.
Файл я отрывала так(должен открываться через командную строку, так как будет тестироваться преподом на его файлах):

files = []
for f in sys.argv[1:]:
files.append((open(f, 'rt')).read().splitlines())
for _ in range(len(files)):
files[_] = list(files[_][0].lower())

Отредактировано Lena13_08 (Ноя. 1, 2017 10:39:55)

Прикреплённый файлы:
attachment text1.txt (17 байт)

Офлайн

#6 Ноя. 1, 2017 11:01:19

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Подсчитать буквы в тексте(кодировка)

Lena13_08
думаю utf-8
это не utf-8




Офлайн

#7 Ноя. 1, 2017 11:03:44

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Подсчитать буквы в тексте(кодировка)

 d = {}
with open("text1.txt", encoding="windows-1251") as f:
    for i in f.read():
        d.setdefault(i, 0)
        d[i] += 1
print(d)



Офлайн

#8 Ноя. 1, 2017 11:13:21

Lena13_08
Зарегистрирован: 2017-10-14
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Подсчитать буквы в тексте(кодировка)

FishHook
попробовала не работает: читает à как а

Отредактировано Lena13_08 (Ноя. 1, 2017 11:13:44)

Офлайн

#9 Ноя. 1, 2017 11:59:46

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Подсчитать буквы в тексте(кодировка)

Lena13_08
А как вы узнали, что там есть символ à? Вы же не знаете в какой кодировке файл.



Офлайн

#10 Ноя. 1, 2017 12:04:22

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Подсчитать буквы в тексте(кодировка)









Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version