В примерах ниже предполагается, что в текущей папке есть файл greka.txt
со следующим содержимым:
ехал грека через реку
видит грека — в реке рак
сунул грека руку в реку
рак за руку греку цап
Работу каждой функции следует продемонстрировать на двух разных файлах.
num_lines(filename)
(1 балл)Написать функцию num_lines(filename)
, которая принимает имя файла
и возвращает число строк в файле:
>>> num_lines('greka.txt')
4
>>> 10 * num_lines('greka.txt')
40
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]}
longest_line(filename)
(1 балла)Написать функцию longest_line(filename)
, которая возвращает самую
длинную строку файла:
>>> longest_line('greka.txt')
'видит грека — в реке рак\n'
max_word_line(filename)
(1 балла)Написать функцию max_word_line(filename)
, которая возвращает строку
с наибольшим количеством слов.
>>> max_word_line('greka.txt')
'видит грека — в реке рак\n'
(здесь 6 слов: видит
, грека
, —
, в
, реке
, рак
)