Попытка описания подмножества Python


  1. «Аксиомы»
    • Объект
    • Оператор («команда»)
  2. Некоторые скалярные объекты Python (int, float, bool, NoneType). Константные конструкторы объектов

  3. Выражения. Некоторые операции над объектами ( /!\ выбрать ). Оператор-выражение.

  4. Связывание объектов именами, операция связывания =

  5. Пустой оператор. Объект-функция: оператор описания def, понятие блока операторов, формальные параметры и возвращаемое значение. Использование в выражении. Функции-выражения вида lambda параметры: выражение, их отличие от заданных с помощью оператора def

  6. Локальное и глобальное пространства имён. Вложенный вызов и вложенное описание функции. Время жизни локального пространства имён при вызове функции и при нескольких вложенных вызовах. Встроенные функции dir() и print() (пока только для получения информации).

  7. Встроенные объекты (dir(__builtins__)) Python (пока очень немногие, /!\ какие? type(), ещё?).

  8. Инкапсуляция имён в объектах, dir(объект), доступ к инкапсулированному имени. Поля и методы объекта. Спецметоды. Строгое соответствие операций спецметодам. Сведение выражения к суперпозиции вызовов методов.

  9. Модули Python: пополнение пространства имён (непосредственно или инкапсулированно в модуль) с помощью оператора import. Модуль math ( /!\ Ещё какие-нибудь? )

  10. Константные последовательности. Кортежи. Индексация. Операция секционирования. Методы кортежей и операции с константными последовательностями. Множественное именование.
  11. Константные последовательности. Строки. Строковые методы и операции над строками. Особенности строк как последовательностей (элемент строки — строка, операция in и метод .find() находят подстроки и т. п.)

  12. Текстовый характер ввода-вывода при взаимодействии с человеком. Преобразование типов (в частности, в тип str и обратно). Функция print(). Методы .__repr__() и __str__()

  13. Функция input(). Ввод не-строковых данных при помощи преобразования типов или интерпретации введённой строки (eval()). Опасность второго способа.

  14. Логические выражения. Нулевой объект типа. Особенности AND и OR при работе с произвольными объектами. Тернарная операция значение-истина if условие else значение-ложь.

  15. Условный оператор. Разделы else и elif. Отличие тернарной операции от оператора. Моделирование условного оператора с помощью функций и тернарной операции. Вложенные условные операторы.

  16. Цикл while. Операторы break и continue. Вложенные циклы. Каноническая схема цикла (установка, проверка условия, тело, изменение условия). Раздел else в операторе while, пример использования на задаче поиска в последовательности. Моделирование циклов с помощью рекурсивных вызовов функции. Проблема накопления пространств имён.

  17. Проход последовательности с помощью цикла for (+ break, continue, else).

  18. Модифицируемые последовательности: списки (динамические массивы связей).Методы списков и операции над ними. Связывание объектов в списки. Идентичность объектов, операция is. Циклический конструктор списка. Вложенные конструкторы и раздел if. Множественное связывание в for и циклических конструкторах.. Работа функции dir().

  19. Классы как произвольные пространства имён. Классы как типы объектов и их конструкторы. Объекты — экземпляры классов. Поля и методы. Первый параметр метода объекта. Правила видимости полей. Наследование классов. Множественное наследование.

  20. Исключения. Управление потоком вычислений при помощи исключений, операторы try/except и raise. Иерархия исключений. Задание собственных исключений.

  21. Вычислимые последовательности. Задание циклическим конструктором и использование (метод next и исключение StopIteration). Отличие от хранимых последовательностей. Функция range(). Работа цикла for: итерируемая последовательность + StopIteration). Работа множественного связывания (итерируемый объект в правой части).

  22. Задание вычислимой последовательности с помощью повторно-входимых функций (оператор yield). Параметрические итераторы

  23. Множества, операции над ними, циклический конструктор множества

  24. Понятие функции расстановки (хеш-функции). Хеш-таблицы. Хешируемые (константные) объекты Python. Функция hash(). Словари, методы словарей и операции над ними.

  25. Позиционные и именные параметры функции. Распаковка и упаковка параметров. Доступ к пространству имён (locals() и globals()). /!\ другие примеры использования словарей

  26. eval() и exec(); задание пространства имён

  27. декораторы и параметрические декораторы


  1. Стек, его реализация с помощью массива списка. Очередь, проблемы реализации с помощью стандартного списка (динамического массива связей). Тип collections.deque. Другие типы из collections

  2. Рекурсия. Требования к рекурсивным алгоритмам, ограничение на глубину. Моделирование рекурсии с помощью цикла и стека состояний

Python/Formalism (последним исправлял пользователь FrBrGeorge 2015-07-12 12:09:17)