Различия между версиями 5 и 6
Версия 5 от 2021-09-20 16:39:19
Размер: 5316
Редактор: FrBrGeorge
Комментарий:
Версия 6 от 2021-09-22 15:01:40
Размер: 5460
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 25: Строка 25:
 * [[py3ref:expressions.html#operator-precedence|Все операции и их старшинство]]
  * '''TODO''' в частности, операции сравнения и многоместные операции сравнения,
   * `False is False is False` (`шhат`?)
 * [[py3ref:expressions.html#operator-precedence|Все знаки операций и их старшинство]]
  * [[py3doc:stdtypes.html#numeric-types-int-float-complex|арифметические действия]]
  * [[py3doc:stdtypes.html#bitwise-operations-on-integer-types|побитовые операции]]
Строка 51: Строка 51:
 * Операции вида «`+=`» (см. [[py3ref:simple_stmts.html#augmented-assignment-statements]])

Командная строка и объекты

Интерпретатор командной строки

  • Командная строка как общий принцип интерфейса
    • Диалог «команда — ответ…»
      • Точнее: ввод → синтаксический анализ → интерпретация → вывод → …
      • Совмещение потока данных и потока управления
    • Редактор: подсказка, история, достраивание, поиск по истории
  • 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

  • основное применение (здравствуй, Си!):
       1 while chunk := fp.read(200):
       2    print(chunk)
    
  • Но не только!
  • отличия от оператора связывания

  • примеры

Д/З

  1. Прочитать и отщёлкать appetite.html, interpreter.html и introduction.html

  2. Добыть на рабочем компьютере
    • Python (третий, разумется)

    • Редактор, в котором можно писать программы (idle есть почти всегда, например, в дистрибутивах ALT Linux он лежит в пакете python3-tools и называется idle3)

    • Написать и запустить программу из файла, в котором написано:
         1 print("QQ")
      
  3. Зарегистрироваться в EJudge (164 турнир)

  4. EJudge: HelloWorld 'Hello World'

    Написать программу, которая выводит строку Hello, world (в точности)

    Input:

    (ввод не нужен)
    Output:

    Hello, world

LecturesCMC/PythonIntro2021/01_Commandline (последним исправлял пользователь FrBrGeorge 2021-09-22 15:01:40)