Skip to content

ITMO-PhysTech-2021/assignment-02-functions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задание #02. Много функций

Краткое описание: немного всего про способы реализовывать и вызывать функции, про callback'и и про рекурсию. В частности про то, как реализовывать функции самостоятельно и про то, как использовать уже имеющиеся стандартные.

Правила

Задачи разбиваются на две категории:

  • practice – задания практики, частично разбираются на практике, дедлайн в пятницу, 15.10.2021, 23:59
  • homework – задания ДЗ для самостоятельного решения, дедлайн в когда-нибудь, ??.10.2021, 23:59

Если вдруг станет доступна опция мягкого дедлайна с возможностью получить более подробный фидбек\подсказки\доп. баллы, я напишу об этом в канал. Зависит только от того, успею ли я быстро проверить весь assignment-01 к какому-то разумному сроку :)

Убедительная просьба писать код самостоятельно! Вы можете решать сложные задания вместе и обсуждать решения друг с другом, но навык реализации своих идей в коде особо не разовьется от простого переписывания чужого кода.

Не редактируйте файлы в папке .github, а также файлы, заканчивающиеся на _test.py. Я все еще ленюсь написать скрипт, который будет проверять, что они не изменены, но в целом мы сами увидим глазами на Review.

Начальная настройка

PyTest и pip

Если вы еще не установили pytest (интересно, почему), то вызовите следующую команду в терминале:

pip install pytest

Если он не может удачно установиться из-за прав доступа, замените на pip install --user pytest.

Если он при этом вывел надпись о том, что pip устарел, вызовите также после команду

python -m pip install --upgrade pip

Репозиторий

Склонируйте этот репозиторий, если у него имя assignment-02-functions-ваш-никнейм.

Если у этого репозитория имя assignment-02-functions, вместо этого

  • не клонируйте этот репозиторий
  • не форкайте этот репозиторий
  • вообще не трогайте этот репозиторий

Видите, как все просто :)

Upstream

Репозиторий 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

После того, как все задания практики сделаны, создайте 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

Pull Request

Если вы сделали ДЗ, но еще не закончили задания практики,

  1. сначала закончите задания практики, предварительно переключившись на ветку practice с помощью git checkout practice
  2. вернитесь на ветку hw с помощью git checkout hw
  3. переместите начало ветки 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.

About

Assignment 02 [Functions]

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages