Цель данного занятия – поразбираться в базовых конструкциях языка Python, его стандартных функциях и способах их применять.
Задачи разбиваются на две категории:
practice– обязательные задачи, которые в идеале можно попробовать успеть сдать за практикуhomework– задачи, которые оцениваются независимо друг от друга, но только при условии сдачи всех задач практики
Если какая-то папка начинается с '.', ее содержимое редактировать нельзя! В частности, это касается папки .github.
Аналогично, не стоит редактировать файлы, заканчивающиеся на _test.py. Их неизменность, в конечном счете, будет
проверяться автоматически.
Для локального тестирования ваших решений установите pytest. Для этого запустите консоль/терминал/PowerShell и
выполните команду
pip install -U pytestТакже в этом задании вам может понадобиться функция язка help(). У PyCharm снизу слева есть меню Python Console
– консоль для построчного исполнения кода на языке Python. Если в нее вбить help(), указав в скобках объект или
функцию, вам выведется краткая информация про этот объект или функцию:
>>> help(sum)
sum(iterable, /, start=0)
Return the sum of a 'start' value (default: 0) plus an iterable of numeric
When the iterable is empty, return the start value.
This function is intended specifically for use with numeric values and may
reject non-numeric types.Все описанные после клонирования команды для работы с гитом (и не только) можно вводить в меню Terminal в PyCharm.
Склонировать репозиторий можно
- либо через интерфейс PyCharm (VCS/Git → Clone), вставив в появившееся окошко указанную ниже ссылку на репозиторий
- либо (предпочтительный способ) используя Git Bash или консоль по SSH (
YOURNAMEнадо заменить на имя вашего аккаунта на GitHub)
git clone git@github.com:ITMO-PhysTech-2021/assignment-01-basics-YOURNAME.git- если вы используете компьютер в компьютерном классе, воспользуйтесь опцией "GitHub" в меню VCS/Git → Clone, авторизуйтесь, используя свой логин и пароль, после чего выберите в появившемся списке имя этого репозитория
Пожалуйста, внимательно читайте вывод каждой выполненной вами команды! Если вы видите слова fatal, rejected
, conflict, скорее всего у вас что-то пошло не так. Либо попробуйте разобраться сами, либо спросите у преподавателя.
- Склонируйте репозиторий любым описанным выше способом (предпочтительнее – вторым). Откройте склонированную папку проекта в PyCharm
- Переключитесь на ветку
practice. Поскольку такая ветка еще не существует, надо делатьcheckout -b
git checkout -b practice- Выполните задачи практики. Каждое задание находится в отдельной папке в
practice. Условие каждого задания находится в его папке в файле_legend.md - После выполнения очередного задания вы можете проверить правильность вашего решения, запустив
pytest(TASKNAMEнадо заменить на имя задания)
pytest practice/TASKNAME- Если все тесты по заданию пройдены, ваше решение можно закоммитить и запушить на GitHub. Я советую не делать
pushпосле каждого коммита, а обойтись им один раз в конце практики, чтобы залить локальные изменения на GitHub
git add practice/TASKNAME
git commit -m "Task [pr] TASKNAME done"
git push origin practiceПосле того, как все задания практики верно сделаны, если какие-то изменения еще не запушены на GitHub, запушьте их,
после чего создайте Pull Request о слиянии ветки practice с веткой main. Это делается средствами GitHub'а через меню
Pull Request в вашем репозитории.
Если хотите указать какие-либо комментарии по заданиям, можете указать их в комментарии при создании Pull Request'а.
После создания откройте там же на GitHub'е созданный Pull Request и дождитесь выполнения автоматической проверки того,
что все задания выполнены верно. После этого должна появиться надпись All checks passsed. Если все так и есть, укажите
вашего преподавателя практики в качестве Reviewer'а в меню справа и дождитесь от него комментариев и подтверждения, что
все ок, после чего вы сможете слить ветку practice в ветку main, нажав кнопку Merge pull request.
Домашнее задание можно начать выполнять даже если выполнены еще не все задания практики. Тем не менее, пока не выполнены все задания практики, домашнее задание засчитано не будет.
- Если, приступая к выполнению ДЗ, вы уже выполнили практику, но находясь за другим устройством, перед выполнением ДЗ выполните следующую команду. Убедитесь, что не возникло никаких конфликтов. Такое же действие надо сделать, если ваш Pull Request по практике был принят
git pull origin main- Если вы остались за тем же устройством, убедитесь, что все текущие изменения по заданиям практики закоммичены и запушены
- Создайте новую ветку
hwи переключитесь на нее:
git checkout -b hw- Выполните задачи домашнего задания. Каждое задание находится в отдельной папке в
homework. Условие каждого задания находится в его папке в файле_legend.md - После выполнения очередного задания вы можете проверить правильность вашего решения, запустив
pytest(TASKNAMEнадо заменить на имя задания)
pytest homework/TASKNAME- Если все тесты по заданию пройдены, ваше решение можно закоммитить и запушить на GitHub. Аналогично практике, советую не делать push после каждого коммита
git add homework/TASKNAME
git commit -m "Task [hw] TASKNAME done"
git push origin hwПосле того, как вы выполнили достаточное (по своим внутренним критериям) количество заданий из ДЗ, создайте аналогичным
практике образом Pull Request из ветки hw в ветку main. Если вы все сделали правильно, Pull Request должен создаться
даже если Pull Request из practice в main еще не подтвержден. Тем не менее, очень не советую так делать, потому что
потом придется подгружать в hw изменения из main, влитые в него из practice.
Убедитесь, что все тесты по выполненным вами заданиям пройдены, после чего позовите вашего преподавателя практики на проверку, отметив его в качестве Reviewer.