Проект спецкурса по Python3 для факультета Психологии МГУ
Цель: выявление и подготовка студентов для научно-исследовательской работы.
Задачи первого семестра:
- Обучение основам программирования и составления алгоритмов
- Обучение основам ЯП Python3
- Закладка базы для решения прикладных задач
Методика:
- базовое проговаривать чётко, о сложном не умалчивать, но ссылаться
- изрядное число простых упражнений по каждой теме
- некоторое количество домашних заданий
План (пока в порядке бреда):
- Установка Python3 на рабочий компьютер
- Понятие управляемого вычислителя
«калькулятор» — числа, арифметические операции, длинные целые, 1.1+2.2
- строки и простейшие операции над ними
- понятие командной строки, простейшее редактирование командной строки, почему не страшно вводить что угодно (наверное всё-таки на примере IDLE)
ещё есть Thonny Python IDE for beginners
- последовательные вычисления в командной строке с ручным копированием промежуточных результатов
- Именование
- связывание результатов именем и обращение к ним по имени
- dir(), допсутимые имена
- на самом деле: создание объектов при вычислении выражения, связывание объектов
- последовательные вычисления в командной строке с именованием промежуточных результатов
- Редактирование и запуск сценариев (программ)
- Работа в текстовом редакторе (IDLE)
Обработка файла интерпретатором; отличие от работы в командной строке, функция print()
- Запуск программы из IDLE
Магический оператор ввода int(input())
- Повторное использование кода
- Функция Python3 как именованный алгоритм
- Задание и вызов функции, блок-со-сдвигом
- Параметры функции
- Возвращаемое значение функции
- Суперпозиция функций
- Локальные и глобальные имена, правила видимости
Примеры на http://pythontutor.com
??? функции-генераторы (с yield и next(генератор)), это просто!
- примерно так:
>>> def gen(): ... yield 10 ... yield 20 ... print("QQ") ... yield 30 ... >>> gen <function gen at 0x7fca87231488> >>> generator = gen() >>> generator <generator object gen at 0x7fca8722cd00> >>> next(generator) 10 >>> next(generator) 20 >>> next(generator) QQ 30 >>> next(generator) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration
- примерно так:
- Условные операторы
- Выполнение или невыполнение команд в зависимости от свойств данных
- Понятие пустого объекта, простейший условный оператор
Тип bool
- Операции сравнения
Полный вид if / elif / ... / else
Вложенные if
- Алгебра логики
вложенные if или and?
TODO