1 of 15

Программирование на Python

лектор: Сергей Горшков

Компьютерные науки и анализ данных

2 of 15

Формат занятий и домашних заданий

2 лекции + 2 семинара в неделю, 7 недель

9 контестов в системе Яндекс.Контест. Контест выдаётся не менее, чем на одну неделю. Возможна ручная проверка

1 проект. По баллам равноценен контестам

Возможны консультации от наших учебных ассистентов – информация на Вики

У нашего курса есть/будет вики-страничка!

Программу прошлого года можно посмотреть тут

После каждого занятия просьба заполнить форму обратной связи

3 of 15

Накоп = 0.1 * (ДЗ1 + ДЗ2 + ДЗ3 + ДЗ4 + ДЗ5 + ДЗ6 + ДЗ7 + ДЗ8 + ДЗ9 + Пр1)

Итог = Округление(0.7 * Накоп + 0.3 * Э), или автомат по накопленной оценке (= Накоп), если Накоп >= 6

Формула оценки

оценка за i-е домашнее задание (контест)

оценка за экзамен

оценка за i-й проект

ДЗi

Э

Прi

4 of 15

О лекторе

  • Горшков Сергей (telegram)
  • Образование: бакалавриат+магистратура МГУ, магистратура ФТиАД ВШЭ, аспирант 4 г.о. ФКН ВШЭ
  • Опыт работы: Яндекс, Авито, PicsArt
  • Опыт преподавания: бакалавриат ПМИ ФКН ВШЭ: ОиМП (19/20-21/22), АКОС (19/20-21/22), МОВС C++ (21/22), Go (22/23), Python (23/24 - 25/26) КНАД Python (21/22 - 25/26), ИПР (21/22 - 24/25)
  • Профессиональные интересы: машинное обучение, искусственный интеллект в образовании

5 of 15

Наш план на сегодня

Немного об истории.

1

2

3

4

5

Hello, world!

Понятие переменной. Команда id. Модель copy-on-write. Правила именования переменных.

Целочисленная арифметика. Питон как простейший калькулятор

Операторы сравнения, присваивания.

6 of 15

Суперкраткая история Python

  • Разработка была начата в 1989
  • Python2 вышел в 2000 г. (не поддерживается с 2020)
  • Python3 вышел в конце 2008 г., он не обладает обратной совместимостью относительно Python2!
  • Текущая версия 3.11.5 (24.08.23), 3.7.6, 3.9.4
  • import this
  • Эталонная реализация CPython, но есть и другие
  • Jython, PyPy, Cython

Гвидо ван Россум

7 of 15

Hello world

  • print(“Hello world”)
  • Чтобы не было так кратко: print “Hello world” было в Python2!
  • А что еще может быть аргументами print?
  • Режим работы интерпретатора
  • Выполнение программы как .py файла
  • Построчное считывание: input()

8 of 15

Представление целых чисел в памяти компьютера

  • Прямой код – хранятся положительные числа (двоичная запись числа)
  • Обратный код (побитовая инверсия прямого кода)
  • Дополнительный код – хранятся отрицательные числа (обратный код + 1)
  • Хорошая методичка – https://al.cs.msu.ru/static/classes/NumberRepresent.pdf

9 of 15

Целочисленная арифметика

  • Приоритет операций языка Python
  • Отличия в делении в Python2 и Python3
  • Деление с остатком для отрицательных чисел – семинар
  • Возведение в степень
  • Побитовые операции, в том числе битовые сдвиги
  • Встроенные функции abs, min, max, pow
  • И иные встроенные функции
  • Деление на ноль

10 of 15

Целочисленная арифметика и логические операции

  • Приоритет операций языка Python
  • Целочисленное деление с отрицательными числами
  • Использование двойных неравенств
  • Закон де Моргана. Применение его для логических выражений в Python.

11 of 15

Работа с PyCharm

  • Python Interpreter (в Preferences - Project)
  • cmd: which/where
  • Run - Edit configurations. script path, working directory
  • Использование breakpoint-ов
  • Использование встроенной Python console, Terminal
  • Магическое if __name__ == ‘__main__’:

12 of 15

Работа с переменными

  • “Программа есть перекладывание переменных друг в друга”
  • У каждой переменной есть тип (type()) – задает множества значений объекта и какие действия над ним можно совершать
  • Оператор присваивания. Операторы приращения.
  • Динамическая типизация
  • int(input())
  • Команда id()
  • Переменная хранит не значение, а ссылку на объект!

13 of 15

Правила именования переменных

  • Имя (идентификатор) может начинаться с буквы любого алфавита в Юникоде любого регистра или подчёркивания, после чего в имени можно использовать и цифры.
  • В качестве имени нельзя использовать ключевые слова (их список можно узнать по import keyword; print(keyword.kwlist)) и нежелательно переопределять встроенные имена.
  • Регистр важен!

14 of 15

Операторы сравнения. Логический тип. None

  • Операторы сравнения
  • bool
  • Приведения типов
  • Двойные неравенства
  • Специальное значение None. Проверка на None, сравнение с None в Python2 и Python3
  • Логические операции and, or, not, xor

15 of 15

sgorshkov@hse.ru

tg: @Serggor98