Решение модуля 9.2 Инди-курс программирования на Python

Модуль 9.2 (Контекстный менеджер). Менеджер контекста – специальная конструкция управления к ресурсу. Под внешними ресурсами можно подразумевать базы данных, блокировки, файлы, сессии на сайтах и т.д.

Напишите функцию find_lines_len_more_6, которая принимает имя файла и находит количество строк, превышающее 6 символов. Не забывайте исключать знак переноса на новую строку, стоящий в конце строки.

Функция find_lines_len_more_6 должна возвращать найденное количество строк

Ваша задача написать только определение функции find_lines_len_more_6

def find_lines_len_more_6(file_name:str) -> int:
    with open(file_name, 'r') as f:  # открываем файл
        cnt = 0                      # объявляем переменную для счетчика строк
        f = f.readlines()            # читаем все строчки
        for i in f:                  # если строка по длине больше 6 - к счетчику добавляем 1
            if len(x:=i.replace('\n','')) > 6:
                cnt += 1
        return cnt                   # возвращаем количество строк с длиной больше 6

В вашем распоряжении имеется файл lorem.txt. Ваша задача посчитать сколько раз встретилось каждое слово в этом тексте. Для этого создайте словарь words, где ключом будет слово, а значением — количество раз появления этого слова в тексте. 

Регистр букв в словах учитывать не нужно, поэтому слова Hello и hEllO являются эквивалентными. Значения ключа в словаре words записывайте в верхнем регистре

Например, если перед вами был бы такой текст:

Привет как дела
привет хорошо

то словарь words выглядел бы так

{'ПРИВЕТ': 2, 'КАК': 1, 'ДЕЛА': 1, 'ХОРОШО': 1}

Между словами в файле стоят только пробелы и переносы строк, других разделителей нет.

Ваша задача только создать переменную-словарь words и подсчитать в нем количество повторений слов. Выводить ничего не нужно

with open('lorem.txt') as f:          # открываем файл
    words = {}                        # создаем пустой словарь для добавления встречающихся слов
    for i in f.readlines():           # циклом проходимся по списку со строками
        for j in i.split():           # проходимся по спискам со словами из каждой строки
            a = j.replace('\n', '')   # удаляем символы переноса строки
            if a.upper() in words:    # если слово есть в словаре то к значению по слову в качестве ключа прибавляем 1
                words[a.upper()] += 1 # а в качестве ключа слово в верхнем регистре
            else:                     # если же нету такого слова в словаре - добавляем ( ключ - слово в верхнем регистре, значение - 1(количество раз встречи данного слова в файле))
                words[a.upper()] = 1

В этой задаче вам необходимо обработать файл с названием words.txt, содержащий множество неуникальных слов. Ваша задача найти в нем все слова, заканчивающиеся на строку ЕЯ, и вывести их на экран. При этом нужно:

  1. исключить дубли
  2. привести все буквы к верхнему регистру
  3. расположить слова в выводе в порядке двойной сортировки: сперва отсортировать по возрастанию длины слова, а при одинаковых значениях длины расположить по алфавиту

Значит, если бы перед вам был файл с содержимым:

панацея
газосварщик
ФЕЯ
затея
лапочка
Гея
панацея
богая
ливрея
ШЕЯ
я
Камыш

то ответ должен быть таким:

ГЕЯ
ФЕЯ
ШЕЯ
ЗАТЕЯ
ЛИВРЕЯ
ПАНАЦЕЯ

Не забывайте про кодировку)

with open('words.txt') as f:      # открываем файл
    spis = []                     # создаем пустой список для добавления подходящих слов
    for i in f.readlines():       # проходимся по строкам файла
        a = i.replace('\n', '')   # удаляем символы переноса строки
        a = a.upper()             # поднимаем слово в верхний регистр
        if a[-2:] == 'ЕЯ' and a not in spis:             # если слово кончается на ЕЯ и его нет ещё в списке
            spis.append(a)        # добавляем его в список
    print(*sorted(spis, key=lambda x: len(x)), sep='\n') # выводим слова построчно, сортируя их по длине

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

1 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
liony
liony
8 месяцев назад

В вашем распоряжении имеется файл lorem.txt.

with open(‘lorem.txt’, ‘r’) as f:
   text = f.read().lower() # читаем файл и переводим текст в нижний регистр
   words = set(text.split()) # разбиваем текст на слова и преобразуем в множество
   unique_words_count = len(words) # вычисляем количество уникальных слов

print(unique_words_count)

143

1
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x