Материалы по курсу «Основы программирования»

Лабораторная работа № 3. Чтение и анализ файлов

В примерах ниже предполагается, что в текущей папке есть файл greka.txt со следующим содержимым:

ехал грека через реку
видит грека — в реке рак
сунул грека руку в реку
рак за руку греку цап

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

Задача 1. Подсчёт строк в файле, num_lines(filename) (1 балл)

Написать функцию num_lines(filename), которая принимает имя файла и возвращает число строк в файле:

>>> num_lines('greka.txt')
4
>>> 10 * num_lines('greka.txt')
40

Задача 2. Позиции слов в файле, word_line_no(filename) (3 балла)

Написать функцию word_line_no(filename), которая определяет позиции всех слов, которые присутствуют в данном файле: для каждого слова должны быть определены номера строк (нумерация начинается с 0), в которых это слово встречается.

Подразумевается, что слова в файле просто разделяются пробельными символами.

Функция word_line_no(filename) должна принимать имя файла и возвращать словарь, ключами которого являются слова, а значениями — списки целых чисел — номеров строк, в которых встречается данное слово.

>>> word_line_no('greka.txt')
{'ехал':[0], 'грека':[0, 1, 2], 'через':[0], 'реку':[0, 2], 'видит':[1],
 '—': [1], 'в': [1, 2], 'реке': [1], 'рак':[1, 3], 'сунул': [2],
 'руку': [2, 3], 'за': [3], 'греку': [3], 'цап': [3]}

Задача 3. Длиннейшая строка, longest_line(filename) (1 балла)

Написать функцию longest_line(filename), которая возвращает самую длинную строку файла:

>>> longest_line('greka.txt')
'видит грека — в реке рак\n'

Задача 4. Строка с наибольшим числом слов, max_word_line(filename) (1 балла)

Написать функцию max_word_line(filename), которая возвращает строку с наибольшим количеством слов.

>>> max_word_line('greka.txt')
'видит грека — в реке рак\n'

(здесь 6 слов: видит, грека, , в, реке, рак)