Найти в Дзене
Заметки по Python

Основы Python. Часть 12

Пользователь вводит число N. Напишите программу, которая генерирует последовательность из квадратов чисел от 1 до N (1 ** 2, 2 ** 2, 3 ** 2 и так далее). Реализацию напишите тремя способами: класс-итератор, функция-генератор и генераторное выражение. Реализуйте функцию gen_files_path, которая рекурсивно проходит по всем каталогам указанной директории (по умолчанию — корневой диск), находит указанный пользователем каталог и генерирует пути всех встреченных файлов. Реализуйте функцию-генератор, которая берёт все питоновские файлы в директории и вычисляет общее количество строк кода, игнорируя пустые строки и строчки комментариев. Реализуйте такую структуру данных без использования стандартных структур Python (list, dict, tuple и прочие) и дополнительных модулей. Для структуры реализуйте следующие методы: Дополнительно: сделайте так, чтобы по списку можно было итерироваться с помощью цикла. Вы работаете в большой компании, которая обслуживает сложную систему торговли. Каждый день генер
Оглавление

Итераторы, генераторы

Задача 1. Квадраты чисел

Пользователь вводит число N. Напишите программу, которая генерирует последовательность из квадратов чисел от 1 до N (1 ** 2, 2 ** 2, 3 ** 2 и так далее). Реализацию напишите тремя способами: класс-итератор, функция-генератор и генераторное выражение.

Задача 2. Пути файлов

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

-2

Задача 3. Количество строк

Реализуйте функцию-генератор, которая берёт все питоновские файлы в директории и вычисляет общее количество строк кода, игнорируя пустые строки и строчки комментариев.

-3

Задача 4. Односвязный список

Реализуйте такую структуру данных без использования стандартных структур Python (list, dict, tuple и прочие) и дополнительных модулей. Для структуры реализуйте следующие методы:

  • append — добавление элемента в конец списка;
  • get — получение элемента по индексу;
  • remove — удаление элемента по индексу.

Дополнительно: сделайте так, чтобы по списку можно было итерироваться с помощью цикла.

-4
-5

Задача 5. Обработка логов

Вы работаете в большой компании, которая обслуживает сложную систему торговли. Каждый день генерируется огромное количество лог-файлов, содержащих информацию о торговых операциях. Вам поставлена задача разработать программу, которая будет автоматически анализировать эти лог-файлы и находить строки с сообщениями об ошибках (ERROR). Это поможет вам быстро отслеживать проблемы в торговой системе и эффективно на них реагировать.

Напишите программу, которая считывает строки из файла и выводит строки, содержащие слово ERROR, в новый файл.

-6