📖 Теория: повторение пройденного

⚡ Кратко

Файлы: open(), режимы, with, кодировка utf-8. Итераторы: iter(), next(), одноразовые. Генераторные выражения экономят память.

1. Работа с файлами

  • open(file, mode, encoding) — открывает файл.
  • Режимы: r чтение, w запись, a дозапись, x создание, b бинарный, + чтение+запись.
  • with open(...) as f: — гарантирует закрытие файла.
  • Методы чтения: read(), readline(), readlines(), перебор for line in file.
  • Методы записи: write(), writelines().

2. Итераторы

  • Итерируемый объект — можно пройти циклом for.
  • Итератор — выдаёт элементы по одному, помнит позицию.
  • iter(obj) создаёт итератор, next(it) возвращает следующий элемент.
  • StopIteration — сигнал об окончании данных.
  • Итераторы одноразовые: после полного прохода их нужно создавать заново.

3. Генераторные выражения

  • Синтаксис: (x for x in iterable).
  • Ленивые: вычисляют элементы по запросу.
  • Не поддерживают индексацию и len().
  • Используются с any(), all(), sum() и другими функциями.

4. Модуль itertools

  • count() — бесконечный счётчик.
  • cycle() — бесконечное повторение.
  • chain() — объединение последовательностей.
  • product() — декартово произведение.
  • permutations() — перестановки.