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