Модуль 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
, содержащий множество неуникальных слов. Ваша задача найти в нем все слова, заканчивающиеся на строкуЕЯ
, и вывести их на экран. При этом нужно:
- исключить дубли
- привести все буквы к верхнему регистру
- расположить слова в выводе в порядке двойной сортировки: сперва отсортировать по возрастанию длины слова, а при одинаковых значениях длины расположить по алфавиту
Значит, если бы перед вам был файл с содержимым:
панацея газосварщик ФЕЯ затея лапочка Гея панацея богая ливрея ШЕЯ я Камышто ответ должен быть таким:
ГЕЯ ФЕЯ ШЕЯ ЗАТЕЯ ЛИВРЕЯ ПАНАЦЕЯНе забывайте про кодировку)
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') # выводим слова построчно, сортируя их по длине
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы
В вашем распоряжении имеется файл
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