Краткое описание: немного всего про способы реализовывать и вызывать функции, про callback'и и про рекурсию. В частности про то, как реализовывать функции самостоятельно и про то, как использовать уже имеющиеся стандартные.
Задачи разбиваются на две категории:
practice– задания практики, частично разбираются на практике, дедлайн в пятницу, 15.10.2021, 23:59homework– задания ДЗ для самостоятельного решения, дедлайн в когда-нибудь, ??.10.2021, 23:59
Если вдруг станет доступна опция мягкого дедлайна с возможностью получить более подробный фидбек\подсказки\доп. баллы,
я напишу об этом в канал. Зависит только от того, успею ли я быстро проверить весь assignment-01 к какому-то разумному
сроку :)
Убедительная просьба писать код самостоятельно! Вы можете решать сложные задания вместе и обсуждать решения друг с другом, но навык реализации своих идей в коде особо не разовьется от простого переписывания чужого кода.
Не редактируйте файлы в папке .github, а также файлы, заканчивающиеся на _test.py. Я все еще ленюсь написать скрипт,
который будет проверять, что они не изменены, но в целом мы сами увидим глазами на Review.
Если вы еще не установили pytest (интересно, почему), то вызовите следующую команду в терминале:
pip install pytestЕсли он не может удачно установиться из-за прав доступа, замените на pip install --user pytest.
Если он при этом вывел надпись о том, что pip устарел, вызовите также после команду
python -m pip install --upgrade pipСклонируйте этот репозиторий, если у него имя assignment-02-functions-ваш-никнейм.
Если у этого репозитория имя assignment-02-functions, вместо этого
- не клонируйте этот репозиторий
- не форкайте этот репозиторий
- вообще не трогайте этот репозиторий
Видите, как все просто :)
Репозиторий assignment-02-functions – это общий репозиторий, в котором у всех есть права на чтение и нет прав на
запись. Это означает, что с ним вы можете делать git pull (загрузить себе новые изменения), но не можете
делать git push (отправить свои изменения на GitHub).
В этот раз вы будете активно пользоваться опцией git pull, если нам понадобится внести некоторые изменения во ВСЕ ваши
репозитории (например, залить домашку). Для этого надо настроить доступ к общему репозиторию на чтение. В папке проекта
выполните следующую команду:
git remote add upstream git@github.com:ITMO-PhysTech-2021/assignment-02-functions.gitТеперь у вас есть два удаленных репозитория, с которыми вы можете работать:
origin– ваш репозиторий, в который вы будете заружать свои решенияupstream– общий репозиторий, из которого можно выгружать изменения, предназначенные для всех
Чтобы синхронизировать историю коммитов, сразу после этого выполните
git pull upstream
git reset --hard upstream/main
git push --force origin mainВсе условия находятся в файлах _legend.md в соответствующих папках practice/TASKNAME или homework/TASKNAME.
Важно: перед тестированием любого задания подгрузите изменения из общего репозитория:
git pull --rebase upstream mainПерейдите на ветку practice!. Иначе ваши решения не будут автоматически тестироваться, и у вас есть шанс не
получить баллы.
git checkout -b practiceПротестировать задание можно запустив файл с тестами из PyCharm или запустив одну из следующих команд в терминале:
pytest practice/TASKNAME
python -m pytest practice/TASKNAMEСделав какое-то задание, выполните команды, чтобы добавить изменения в Git, собрать их в один коммит и отправить на GitHub:
git add practice/TASKNAME
git commit -m "practice TASKNAME finished"
git push origin practiceПосле того, как все задания практики сделаны, создайте Pull Request из ветки practice в ветку main и укажите своего
преподавателя в качестве Reviewer. Не надо делать Merge до того, как ваш код будет проверен преподавателем.
Pull Request можно сделать по ссылке, которая появляется, если вы делаете git push origin practice, либо в меню Pull
Requests на GitHub.
Перейдите на ветку hw!. Иначе ваши решения не будут автоматически тестироваться, и у вас есть шанс не получить
баллы.
git checkout -b hwРекомендуется делать это после того, как сдана вся практика, и находясь на ветке practice. Если вы не завершили все
задания практики, но хотите начать делать ДЗ, ответвитесь от ветки main, как написано ниже. Заранее убедитесь, что у
вас нет незакоммиченных изменений.
git checkout -b hw mainПротестировать задание можно запустив файл с тестами из PyCharm или запустив одну из следующих команд в терминале:
pytest homework/TASKNAME
python -m pytest homework/TASKNAMEСделав какое-то задание, выполните команды, чтобы добавить изменения в Git, собрать их в один коммит и отправить на GitHub:
git add homework/TASKNAME
git commit -m "homework TASKNAME finished"
git push origin hwЕсли вы сделали ДЗ, но еще не закончили задания практики,
- сначала закончите задания практики, предварительно переключившись на ветку
practiceс помощьюgit checkout practice - вернитесь на ветку
hwс помощьюgit checkout hw - переместите начало ветки
hwна конец веткиpractice:
git rebase --onto practice mainЕсли вы выполнили все предыдущие пункты, делать PR отдельно для практики не надо, просто сделайте PR из ветки hw,
как описано далее.
После того, как все задания ДЗ (и практики) сделаны, создайте Pull Request из ветки hw в ветку main и укажите своего
преподавателя в качестве Reviewer. Не надо делать Merge до того, как ваш код будет проверен преподавателем.
Pull Request можно сделать по ссылке, которая появляется, если вы делаете git push origin hw, либо в меню Pull
Requests на GitHub.