9521
Комментарий:
|
9487
|
Удаления помечены так. | Добавления помечены так. |
Строка 5: | Строка 5: |
Строка 9: | Строка 10: |
Методика: | Методика: |
Строка 13: | Строка 15: |
* Изрядное число простых упражнений по каждой теме | * Изрядное число простых упражнений по каждой теме |
Строка 17: | Строка 19: |
1.#0 Установка Python3 на рабочий компьютер | 1. Установка Python3 на рабочий компьютер |
Строка 22: | Строка 24: |
* Командная строка `idle3`, | * Консольная командная строка, |
Строка 52: | Строка 54: |
* [[http://pythontutor.com/visualize.html#code=def%20fun%28a%29%3A%0A%20%20%20%20b%20%3D%20a*2%2B1%0A%20%20%20%20return%20b*3%0A%0Aa,%20b%20%3D%203,%204%0Aprint%28fun%28a%29%29%0Aprint%28fun%28b%29%29&cumulative=false&curInstr=0&heapPrimitives=true&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false|Пример]] | * [[http://pythontutor.com/visualize.html#code=def%20fun(a): %20%20%20%20b%20=%20a*2+1 %20%20%20%20return%20b*3 a,%20b%20=%203,%204 print(fun(a)) print(fun(b))&cumulative=false&curInstr=0&heapPrimitives=true&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=[]&textReferences=false|Пример]] |
Строка 98: | Строка 106: |
Строка 99: | Строка 108: |
1.#0 Открытая разработка и сообщество, свободное лицензирование | 1. Открытая разработка и сообщество, свободное лицензирование |
Строка 113: | Строка 122: |
Строка 116: | Строка 126: |
* циклические конструкторы * запуск программы из командной строки и перенаправление В/В * распаковка последовательности * в = * в функции * в `for` (если это последовательность последовательностей) * стоимость append(), pop(), insert() и del * ??? функции-генераторы (с `yield` и `next(генератор)`), это просто! * примерно так: {{{#!python |
* циклические конструкторы * запуск программы из командной строки и перенаправление В/В * распаковка последовательности * в = * в функции * в `for` (если это последовательность последовательностей) * стоимость append(), pop(), insert() и del * ??? функции-генераторы (с `yield` и `next(генератор)`), это просто! * примерно так: {{{#!python |
Строка 131: | Строка 142: |
... | ... |
Проект спецкурса по Python3 для факультета Психологии МГУ
Цель: выявление и подготовка студентов для научно-исследовательской работы.
Задачи первого семестра:
- Обучение основам программирования и составления алгоритмов
- Обучение основам ЯП Python3
- Закладка базы для решения прикладных задач
Методика:
- Первая половина курса — азы программирования и сильно урезанное подмножество Python
- Вторая половина курса — повторение с объяснениями и дополнениями
- Ссылаться на лекциях на документацию, давать её в Д/З
- Изрядное число простых упражнений по каждой теме
- Некоторое количество домашних заданий (возможно, в конце)
Введение в ЯП Python3
- Установка Python3 на рабочий компьютер
Найти/сделать видео
- Устроить install fest для всех, кто не справился
- Понятие управляемого вычислителя
- Понятие командной строки (команда → интерпретация → выполнение → диагностика →)
- Консольная командная строка,
«Калькулятор» — числа, арифметические операции, длинные целые, 1.1+2.2
- Строки и простейшие операции над ними
Типы объектов (пока знаем целые, вещественные, строки и функции), функция type()
Использование функций (abs(), max(), round(), bin(), hex() …)
Тип bool, операции сравнения (в том числе многоместные вида a < b < c < d)
- последовательные вычисления в командной строке с ручным копированием промежуточных результатов
- Именование
- Связывание результатов именем и обращение к ним по имени
- Допустимые имена
Представление о пространстве имён, dir()
- Создание объектов при вычислении выражения
Множественное связывание (a, b, c = 1, 3, 5 и a = b = c = 5)
- Последовательные вычисления в командной строке с именованием промежуточных результатов
- Редактирование и запуск сценариев (программ)
- Понятие текстового редактора
Работа в текстовом редакторе idle3, запуск программы
Отличие от работы в командной строке, функция print()
Магический оператор ввода int(input())
Модуль math и математические функции
- Обработка файла интерпретатором
- Повторное использование кода
- Функция Python3 как именованный алгоритм
- Задание и вызов функции, блок-со-сдвигом
- Параметры функции
- Возвращаемое значение функции
- Суперпозиция функций
- «Утиная типизация»: все объекты строго типизированы, но по имени этого не скажешь
- ⇒ функция выполнится, если все операции в ней применимы к переданным объектам
- Локальные и глобальные имена, правила видимости
%20%20%20%20b%20=%20a*2+1 %20%20%20%20return%20b*3
a,%20b%20=%203,%204 print(fun(a)) print(fun(b))&cumulative=false&curInstr=0&heapPrimitives=true&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=[]&textReferences=false|Пример]]
- Условные операторы
- Выполнение или невыполнение команд в зависимости от свойств данных
- Простейший условный оператор
Полный вид if / elif / ... / else
Вложенные if
- Циклическое выполнение команд в зависимости от свойств данных
Цикл while
- Бесконечный цикл
- Условные операторы в цикле
Операторы break и continue, когда нужны
- Вложенные циклы
- Составление алгоритмов на условные операторы в цикле и вложенные циклы
- Каноническая схема цикла (инициализация, проверка условия, тело, изменение)
Алгоритм «поиск первого», секция else: в цикле
Много упражнений
- Методы объектов
- Метод как функция:
- Уже существующая для данного объекта
- Заведомо применимая к данному объекту
- Имеющая доступ к внутренностям объекта
- Инкапсуляция
Примеры числовых и строковых методов (не все!)
dir(объект)
- Метод как функция:
- Кортежи
- Понятие индексируемой последовательности
- Операции над последовательностями
- Индексирование (в т. ч. с отрицательным индексом)
- Секционирование
операция in
- операции поэлементного сравнения
- Списки
- Понятие модифицируемой последовательности, списки
- append(), pop(), insert(), del
- Замена элемента списка
- Если у списка несколько имён, он всё равно один, и замена «видна» отовсюду
Уникальный идентификатор объекта id(объект), сравнение is
- удаление/вставка/замена секций
Операции изменения (вида имя операция= выражение, отличие в работе += для списков и кортежей
- Алгоритмы, использующие модифицированные последовательности
… TODO а какие?
- Строки
- Задание, операции над
Особенности индексирования и in; секционирование
форматирование (в первую очередь f"", но и .format(); не всё)
- Некоторые методы (не все)
Программирование на Python3
- Открытая разработка и сообщество, свободное лицензирование
Цикл for
- Проход последовательности циклом
использование range()
использование enumerate()
- Алгебра логики, пустые объекты Python
- Модули
- Стандартные модули (некоторые)
- Написание своих модулей
PyPI, установка модулей с помощью pip
- Словари
- ...
- Работа с файлами
- ...
...
TODO
- циклические конструкторы
- запуск программы из командной строки и перенаправление В/В
- распаковка последовательности
- в =
- в функции
в for (если это последовательность последовательностей)
- стоимость append(), pop(), insert() и del
??? функции-генераторы (с 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
- примерно так: