Командная строка и объекты
Интерпретатор командной строки
- Командная строка как общий принцип интерфейса
- Диалог «команда — ответ…»
- Точнее: ввод → синтаксический анализ → интерпретация → вывод → …
- Совмещение потока данных и потока управления
- Редактор: подсказка, история, достраивание, поиск по истории
- Диалог «команда — ответ…»
- Python3:
- консольный (классика)
Настройка, файл (~/.pythonstartup )
- idle / pycrust / встроенные в IDE
- bpython / ipython / …
- консольный (классика)
- Синтаксические ошибки / ошибки времени выполнения
Редакторы
Любые программистские, например, vim
- IDLE
- Иные мелкие IDE (Geany, Spyder, тысячи их)
Толстые прорприетарные: WingIDE, PyCharm и т. п.
Объекты и выражения с ними
- Целые, вещественные и комплексные числа
- длинные целые
- проблема представления вещественных
забегая вперёд: fractions.Decimal: и fractions.Fraction
- Строки
- Кортежи
Идентификатор объекта (id())
операции in и is (когда == не равно is)
Типы, type(), преобразование типов
- Типы — это объекты
- Функции
Функция в Python — это именованная запись алгоритма (подпрограмма)
- Функции — это тоже просто объекты
Связывание объектов
- Создание и удаление объектов при интерпретации команд
Все перечисленные объекты — константные
- Связывание объектов именами, чтобы не удалились
dir() и globals()
(забегая) dir(объект)
Счётчик ссылок, sys.getrefcount(), правило удаления
del имя удаление имени, а не объекта
- Множественное связывание (многоместное и распаковкой последовательности)
- Функция, которая «возвращает много значений»
- Модифицируемые объекты — списки, словари, множества (беглый обзор)
- Связывание объектов ссылками из кортежей (и других составных типов)
- (забегая вперёд) Отличие связывания от присваивания на примере списков
Неявная динамическая строгая типизация: типизация объектов, но не имён
Операции вида «+=» (см. simple_stmts.html)
Нечто про моржа
Операция (а не выделенный оператор) связывания: «:=», см pep-0572
- основное применение (здравствуй, Си!):
- Но не только!
Д/З
Прочитать и отщёлкать appetite.html, interpreter.html и introduction.html
- Добыть на рабочем компьютере
Python (третий, разумется)
Редактор, в котором можно писать программы (idle есть почти всегда, например, в дистрибутивах ALT Linux он лежит в пакете python3-tools и называется idle3)
- Написать и запустить программу из файла, в котором написано:
1 print("QQ")
Зарегистрироваться в EJudge (164 турнир)
Пошаговая инструкция (делаем поправку на номер турнира)
- не забыть представиться (ФИО и группа в поле «имя»)!
EJudge: HelloWorld 'Hello World'
Написать программу, которая выводит строку Hello, world (в точности)
(ввод не нужен)
Hello, world