4770
Комментарий:
|
4747
|
Удаления помечены так. | Добавления помечены так. |
Строка 4: | Строка 4: |
* {i} Посчитать количество __вхождений__ различных слов в тексте | * {i} Посчитать количество различных слов в тексте |
10.15 Словари и их применение
- Основные свойства словарей
- Словари внутри python
Посчитать количество различных слов в тексте
То же с помощью Counter
Задача_1: Подсчитать количество вхождений различных пар букв в тексте
- на вход подаётся строка, в которую могут входить: буквы, пробелы, а также любые другие символы
- буквой считается символ, на котором isalpha() возвращает True
- требуется подсчитать количество различных пар букв в тексте (заглавные и строчные буквы не считаются различными, поэтому строку сразу перевести в нижний регистр через lower())
- парой букв считаются расположенные рядом две буквы (примеры разных пар: аб, бб, wъ, щz)
- пример:
- вход: "аwба%Ба б7"
- выход: 3
- пары букв (выводить не надо): аw, wб, ба
Убрать все повторяющиеся слова из текста (однострочник)
Использование sys.argv
Использование random
- Пароль (однострочник) — пример
- Ещё пример:
$ # на самом деле https://github.com/first20hours/google-10000-english/raw/master/google-10000-english.txt $ python3 -c 'import urllib.request; import random; print(" ".join(random.sample(urllib.request.urlopen("https://tinyurl.com/z9lcu2y").read().decode().split(),4)))'
- Ещё пример:
Использование seed()
Генератор тестов: передача seed и других параметров через argv
seed() без параметров
Задача_2: Генерация произносимого пароля
произносимый пароль состоит из "слогов" трёх видов: 'Г', 'ГС' 'СГ', где 'Г' - заглавная гласная буква, 'С' - заглавная согласная буква (Ь и Ъ не используем; автор задачи помнит, что (со)гласными могут быть звуки, а не буквы )
- на вход подаётся длина пароля (целое положительное число N)
- требуется сгенерировать пароль длины N путём его достройки, начиная с пустой строки, до требуемой длины путём добавления случайного слога одного из описанных выше видов
- к частично построенной строке длины (N-1) разрешается добавлять последний слог из двух букв
- пример:
- вход: 8
- выход: АЗАЗЕЛЛО
- слоги добавлялись так: АЗ, АЗ, ЕЛ, ЛО; начиная со слога А такой выход построить невозможно
- тоже корректный выход (длины 9): АЗЫАЗЕЛЛО
Задача_3 (Д/З): Генерация литературного пароля
померить частоты пар букв в ../../06_DictCollection/anna.txt (пара букв - то же, что в Задаче_2)
- на вход программе подаётся длина пароля (целое положительное число N)
- требуется сгенерировать пароль длины N путём его достройки до требуемой длины
- выбор первой пары букв - случайный, вероятность выбора пропорциональна числу её вхождений в литер. текст
- добавление очередной буквы в конец пароля - случайный, вероятность выбора добавляемой буквы пропорциональна числу вхождений пары букв pq в литер. текст (здесь p - последняя буква частично построенного пароля, q - добавляемая буква)