From 266fb2f98ed3164ed2be4ea8c43237fc3b02424b Mon Sep 17 00:00:00 2001 From: Vladimir Grigoriants Date: Mon, 11 Sep 2023 18:20:16 +0400 Subject: [PATCH 01/21] Create calculator.py --- calculator.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 calculator.py diff --git a/calculator.py b/calculator.py new file mode 100644 index 0000000..f38c829 --- /dev/null +++ b/calculator.py @@ -0,0 +1 @@ +### This will be our great calculator. Please contribute by writing one of the functions From a735b21819ddc1a13dea7f5b4b408395f19af6af Mon Sep 17 00:00:00 2001 From: VovaGrig Date: Mon, 11 Sep 2023 18:44:18 +0300 Subject: [PATCH 02/21] Create main and plus functions --- calculator.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/calculator.py b/calculator.py index f38c829..db32f28 100644 --- a/calculator.py +++ b/calculator.py @@ -1 +1,17 @@ ### This will be our great calculator. Please contribute by writing one of the functions +def plus(my_string): + ans = int(my_string.split(' ')[0]) + int(my_string.split(' ')[2]) + return ans +def main(): + my_string = str(input()) + if my_string.split(' ')[1] == "+": + ans = plus(my_string) + elif my_string.split(' ')[1] == "-": + ans = minus(my_string) + elif my_string.split(' ')[1] == "*": + ans = multiplication(my_string) + elif my_string.split(' ')[1] == "/": + ans = division(my_string) + return ans +answer = main() +print(answer) \ No newline at end of file From 6499381047bf008af079ac61363156ca346a87d9 Mon Sep 17 00:00:00 2001 From: VovaGrig Date: Mon, 11 Sep 2023 18:51:40 +0300 Subject: [PATCH 03/21] Added comments to main and plus functions --- calculator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/calculator.py b/calculator.py index db32f28..e8c0e5c 100644 --- a/calculator.py +++ b/calculator.py @@ -1,8 +1,8 @@ ### This will be our great calculator. Please contribute by writing one of the functions -def plus(my_string): +def plus(my_string): #numbers addition ans = int(my_string.split(' ')[0]) + int(my_string.split(' ')[2]) return ans -def main(): +def main(): #accepts input, transmits to corresponding function and returns answer my_string = str(input()) if my_string.split(' ')[1] == "+": ans = plus(my_string) From 8becf4c7855fefeec2149fc72958f3b8e8a91794 Mon Sep 17 00:00:00 2001 From: VovaGrig Date: Mon, 11 Sep 2023 19:26:49 +0300 Subject: [PATCH 04/21] Upgraded main function, deleted plus function --- calculator.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/calculator.py b/calculator.py index e8c0e5c..4f1e339 100644 --- a/calculator.py +++ b/calculator.py @@ -1,17 +1,16 @@ ### This will be our great calculator. Please contribute by writing one of the functions -def plus(my_string): #numbers addition - ans = int(my_string.split(' ')[0]) + int(my_string.split(' ')[2]) - return ans def main(): #accepts input, transmits to corresponding function and returns answer my_string = str(input()) + num1 = my_string.split(' ')[0] + num2 = my_string.split(' ')[2] if my_string.split(' ')[1] == "+": - ans = plus(my_string) + ans = plus(num1, num2) elif my_string.split(' ')[1] == "-": - ans = minus(my_string) + ans = minus(num1, num2) elif my_string.split(' ')[1] == "*": - ans = multiplication(my_string) + ans = multiplication(num1, num2) elif my_string.split(' ')[1] == "/": - ans = division(my_string) + ans = division(num1, num2) return ans answer = main() print(answer) \ No newline at end of file From 91b453f52a5cccef343bd32cd0bdc69d8efd7afe Mon Sep 17 00:00:00 2001 From: Elizaveta Chevokina Date: Mon, 11 Sep 2023 19:55:22 +0300 Subject: [PATCH 05/21] Added multiplication in calculator --- calculator.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/calculator.py b/calculator.py index 4f1e339..68a11a9 100644 --- a/calculator.py +++ b/calculator.py @@ -13,4 +13,8 @@ def main(): #accepts input, transmits to corresponding function and returns answ ans = division(num1, num2) return ans answer = main() -print(answer) \ No newline at end of file +print(answer) + +def multiplication(num1, num2): + ans = num1 * ans2 + return ans From d07d5f277b8c057da67062d7cdac29cb3ee3c540 Mon Sep 17 00:00:00 2001 From: Elizaveta Chevokina Date: Mon, 11 Sep 2023 19:57:53 +0300 Subject: [PATCH 06/21] Added multiplication in calculator --- calculator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/calculator.py b/calculator.py index 68a11a9..b499620 100644 --- a/calculator.py +++ b/calculator.py @@ -16,5 +16,5 @@ def main(): #accepts input, transmits to corresponding function and returns answ print(answer) def multiplication(num1, num2): - ans = num1 * ans2 + ans = num1 * num2 return ans From f1b4b3065110797c85a36fe15d8523e1960852b4 Mon Sep 17 00:00:00 2001 From: Victoria Orlova Date: Mon, 11 Sep 2023 20:01:31 +0300 Subject: [PATCH 07/21] Added plus function --- calculator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/calculator.py b/calculator.py index 4f1e339..653813b 100644 --- a/calculator.py +++ b/calculator.py @@ -1,4 +1,7 @@ ### This will be our great calculator. Please contribute by writing one of the functions +def plus(num1, num2): + return num1 + num2 + def main(): #accepts input, transmits to corresponding function and returns answer my_string = str(input()) num1 = my_string.split(' ')[0] @@ -13,4 +16,4 @@ def main(): #accepts input, transmits to corresponding function and returns answ ans = division(num1, num2) return ans answer = main() -print(answer) \ No newline at end of file +print(answer) From ff3c40c14a8ddae52ad9b0a6ca608078aae0502a Mon Sep 17 00:00:00 2001 From: Stacy Date: Mon, 11 Sep 2023 20:07:29 +0300 Subject: [PATCH 08/21] Added division --- calculator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/calculator.py b/calculator.py index 4f1e339..af1186c 100644 --- a/calculator.py +++ b/calculator.py @@ -1,4 +1,7 @@ ### This will be our great calculator. Please contribute by writing one of the functions +def division(num1, num2): + return num1 / num2 + def main(): #accepts input, transmits to corresponding function and returns answer my_string = str(input()) num1 = my_string.split(' ')[0] @@ -13,4 +16,4 @@ def main(): #accepts input, transmits to corresponding function and returns answ ans = division(num1, num2) return ans answer = main() -print(answer) \ No newline at end of file +print(answer) From 11074e7f06ad7ef7d84dd12cdc69b73713e7edb9 Mon Sep 17 00:00:00 2001 From: VovaGrig Date: Tue, 12 Sep 2023 20:07:31 +0300 Subject: [PATCH 09/21] Create folder HW2_Grigoriants, moved calculator.py there --- HW2_Grigoriants/calculator.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 HW2_Grigoriants/calculator.py diff --git a/HW2_Grigoriants/calculator.py b/HW2_Grigoriants/calculator.py new file mode 100644 index 0000000..4f1e339 --- /dev/null +++ b/HW2_Grigoriants/calculator.py @@ -0,0 +1,16 @@ +### This will be our great calculator. Please contribute by writing one of the functions +def main(): #accepts input, transmits to corresponding function and returns answer + my_string = str(input()) + num1 = my_string.split(' ')[0] + num2 = my_string.split(' ')[2] + if my_string.split(' ')[1] == "+": + ans = plus(num1, num2) + elif my_string.split(' ')[1] == "-": + ans = minus(num1, num2) + elif my_string.split(' ')[1] == "*": + ans = multiplication(num1, num2) + elif my_string.split(' ')[1] == "/": + ans = division(num1, num2) + return ans +answer = main() +print(answer) \ No newline at end of file From 07a6dcbcbe57c9e2213704efd68b3a8145b00929 Mon Sep 17 00:00:00 2001 From: VovaGrig Date: Tue, 12 Sep 2023 20:09:12 +0300 Subject: [PATCH 10/21] Delete useless duplicated calculator.py --- calculator.py | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 calculator.py diff --git a/calculator.py b/calculator.py deleted file mode 100644 index 4f1e339..0000000 --- a/calculator.py +++ /dev/null @@ -1,16 +0,0 @@ -### This will be our great calculator. Please contribute by writing one of the functions -def main(): #accepts input, transmits to corresponding function and returns answer - my_string = str(input()) - num1 = my_string.split(' ')[0] - num2 = my_string.split(' ')[2] - if my_string.split(' ')[1] == "+": - ans = plus(num1, num2) - elif my_string.split(' ')[1] == "-": - ans = minus(num1, num2) - elif my_string.split(' ')[1] == "*": - ans = multiplication(num1, num2) - elif my_string.split(' ')[1] == "/": - ans = division(num1, num2) - return ans -answer = main() -print(answer) \ No newline at end of file From 1f6c8221336d81a9e4908c352bf4461724cd5d8b Mon Sep 17 00:00:00 2001 From: VovaGrig Date: Tue, 12 Sep 2023 20:19:30 +0300 Subject: [PATCH 11/21] Update calculator.py to look nice --- HW2_Grigoriants/calculator.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/HW2_Grigoriants/calculator.py b/HW2_Grigoriants/calculator.py index 4f1e339..5e4e621 100644 --- a/HW2_Grigoriants/calculator.py +++ b/HW2_Grigoriants/calculator.py @@ -1,16 +1,17 @@ ### This will be our great calculator. Please contribute by writing one of the functions def main(): #accepts input, transmits to corresponding function and returns answer - my_string = str(input()) - num1 = my_string.split(' ')[0] - num2 = my_string.split(' ')[2] - if my_string.split(' ')[1] == "+": + my_string = input() + num1 = float(my_string.split[0]) + num2 = float(my_string.split[2]) + sign = my_string.split[1] + if sign == "+": ans = plus(num1, num2) - elif my_string.split(' ')[1] == "-": + elif sign == "-": ans = minus(num1, num2) - elif my_string.split(' ')[1] == "*": + elif sign == "*": ans = multiplication(num1, num2) - elif my_string.split(' ')[1] == "/": + elif sign == "/": ans = division(num1, num2) return ans answer = main() -print(answer) \ No newline at end of file +print(answer) From f08c02a4682fcf54e97d7872c58a0a51565455e2 Mon Sep 17 00:00:00 2001 From: Victoria Orlova Date: Tue, 12 Sep 2023 20:29:24 +0300 Subject: [PATCH 12/21] Add sum function --- HW2_Grigoriants/calculator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HW2_Grigoriants/calculator.py b/HW2_Grigoriants/calculator.py index 0152ccb..013239c 100644 --- a/HW2_Grigoriants/calculator.py +++ b/HW2_Grigoriants/calculator.py @@ -1,5 +1,5 @@ ### This will be our great calculator. Please contribute by writing one of the functions -def plus(num1, num2): +def plus(num1, num2): #sum of numbers return num1 + num2 def main(): #accepts input, transmits to corresponding function and returns answer From cf66dc518e406e6046dfb027e789d26c80b7a23b Mon Sep 17 00:00:00 2001 From: Elizaveta Chevokina Date: Tue, 12 Sep 2023 20:29:52 +0300 Subject: [PATCH 13/21] Add multiplication function in calculator.py --- calculator.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/calculator.py b/calculator.py index b499620..a1bdad2 100644 --- a/calculator.py +++ b/calculator.py @@ -1,4 +1,7 @@ ### This will be our great calculator. Please contribute by writing one of the functions +def multiplication(num1, num2): #multiplication of two numbers + return num1 * num2 + def main(): #accepts input, transmits to corresponding function and returns answer my_string = str(input()) num1 = my_string.split(' ')[0] @@ -14,7 +17,3 @@ def main(): #accepts input, transmits to corresponding function and returns answ return ans answer = main() print(answer) - -def multiplication(num1, num2): - ans = num1 * num2 - return ans From a9aaa620a1ea20571e7139adff463dc7f5c11808 Mon Sep 17 00:00:00 2001 From: VovaGrig Date: Tue, 12 Sep 2023 20:19:30 +0300 Subject: [PATCH 14/21] Update calculator.py to look nice --- HW2_Grigoriants/calculator.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/HW2_Grigoriants/calculator.py b/HW2_Grigoriants/calculator.py index 4f1e339..5e4e621 100644 --- a/HW2_Grigoriants/calculator.py +++ b/HW2_Grigoriants/calculator.py @@ -1,16 +1,17 @@ ### This will be our great calculator. Please contribute by writing one of the functions def main(): #accepts input, transmits to corresponding function and returns answer - my_string = str(input()) - num1 = my_string.split(' ')[0] - num2 = my_string.split(' ')[2] - if my_string.split(' ')[1] == "+": + my_string = input() + num1 = float(my_string.split[0]) + num2 = float(my_string.split[2]) + sign = my_string.split[1] + if sign == "+": ans = plus(num1, num2) - elif my_string.split(' ')[1] == "-": + elif sign == "-": ans = minus(num1, num2) - elif my_string.split(' ')[1] == "*": + elif sign == "*": ans = multiplication(num1, num2) - elif my_string.split(' ')[1] == "/": + elif sign == "/": ans = division(num1, num2) return ans answer = main() -print(answer) \ No newline at end of file +print(answer) From a4016a0ef87e91a4cad2deaf5cc405286745a095 Mon Sep 17 00:00:00 2001 From: VovaGrig Date: Tue, 12 Sep 2023 21:10:03 +0300 Subject: [PATCH 15/21] Move README.md to HW2_Grigoriants --- README.md => HW2_Grigoriants/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README.md => HW2_Grigoriants/README.md (100%) diff --git a/README.md b/HW2_Grigoriants/README.md similarity index 100% rename from README.md rename to HW2_Grigoriants/README.md From 97d4619ceccdddf56b2e23e605840ba38b7dced2 Mon Sep 17 00:00:00 2001 From: Vladimir Grigoriants Date: Tue, 12 Sep 2023 22:26:27 +0400 Subject: [PATCH 16/21] Update README.md Now it's great --- HW2_Grigoriants/README.md | 56 +++++++-------------------------------- 1 file changed, 10 insertions(+), 46 deletions(-) diff --git a/HW2_Grigoriants/README.md b/HW2_Grigoriants/README.md index 1664a01..000c89e 100644 --- a/HW2_Grigoriants/README.md +++ b/HW2_Grigoriants/README.md @@ -1,49 +1,13 @@ -# HW2_Git_and_python -*This is the repo for the second homework of the BI Python 2023 course* +# HW2_Git_and_python by Git Dream Team +Наша команда обеспечила Github комьюнити новейшим вычислительным механизмом. С её помощью школьная арифметика больше не создаст ни для кого проблем! Программа принимает на вход строку с некоторым математическим выражением и выводит число - результат вычисления этого выражения. -### Homework description -В качестве данного ДЗ вам будет необходимо познакомиться с командной работой через GitHub, а также освежить в памяти основые концепции языка Python, которые вы проходили во вступительном курсе. Прочтите внимательно все инструкции перед тем приступить к выполнению задания, при необоходимости задавайте вопросы в общем чате или личных сообщениях. Текст задания большой потому что подробный. Со временем подробностей в ДЗ будет меньше (хорошо ли это?). +# Состав команды: +* Виктория Орлова +* Анастасия Петухова +* Мария Лукина +* Елизавета Чевокина +* Владимир Григорянц - наш ***тимлид*** -#### Основное задание +Инсайд с нашего собрания: -В этом задании вам надо будет написать мини-программу `calculator.py`. Программа должна принимать на вход (через `input()`) строку с некоторым математическим выражением и печатать число - результат вычисления этого выражения. Гарантируется что выражение состоит из двух чисел (`int` или `float`) и математического оператора между ними (один из 4: `+ - * /`). Все указанные элементы разделены пробелами (пример: `5 - 3`). Реализуйте внутри скрипта 5 функций: `main` и 4 отдельные функции на каждый из типов математических операций. Функция `main` внутри себя должна принимать входное выражение, отдавать его на вычисление соответствующей функции, получать результат и печатать его на экран. Каждая из 4 функций лишь принимает определенное выражение от главной функции, вычисляет его и возвращает результат главной функции. - -**Tехническое требование к заданию.** - -Это задание будет выполняться в командах по 4-5 человек. Каждый из членов команды должен внести ***как минимум*** 1 функцию в скрипт `calculator.py`. Каждое внесение функции должно сопровождаться коммитом с осмысленным описанием коммита. Ниже приведена последовательность действий для успешного выполнения задания: - -1. Посмотрите состав своей команды здесь ([**ССЫЛКА**](https://plausible-cannon-091.notion.site/Teams-for-HW2-429f378d25db4723a2979cd5434efc95?pvs=4)). Самостоятельно выбирете тимлида в вашей команде. Распределите кто какую из 5-и функций будет писать. -2. Тимлид должен сделать форк данного репозитория (убедитесь что вы убрали галочку в пункте **`Copy the** master **branch only`)**. Тимлид **создает новую ветку** `HW2_`. После этого тимлид отправляет каждому ссылку на форкнутый репозиторий. -3. Каждый член команды делает свой собственный форк с репозитория тимлида. После этого клонирует свой собственный форк к себе на локальный компьютер. -4. Локально в этом репозитории пишет в скрипте его часть работы. Скрипт `calculator.py` должен лежать в папке `HW2_` и может быть либо создан тимлидом в пункте 2 (тогда члены команды пишут код в имеющемся файле), либо же каждый член команды создает локально данный файл независимо от коллег. Это на выбор команды. -5. Каждый член команды после завершения своей части работы коммитит свои локальные изменения с ************************осмысленным************************ сообщением коммита и делает push в свой удаленный репозиторий. На этом этапе вам может потребоваться сделать синхронизацию с репозиторием тимлида, если там уже произошли изменения (это во вкладке *sync fork* → *fetch*, см. скриншот в [Notion](https://plausible-cannon-091.notion.site/Python-course-8b1f0f28506543bcba2a74c9b411a6cb)) -6. После этого из персональных удаленных репозиториев делается *pull-request* в репозиторий тимлида **в ветку** `HW2_` чтобы собрать все куски кода воедино (это во вкладке *contribute* → *open pull request*, см. скриншот) -7. Тимлид (или любой другой член команды) дополняет общий репозиторий файлом `README.md` который содержит описание вашей мини-программы и состав команды разработчиков. -8. После завершения работы тимлид делает *pull-request* вашего командного репозитория обратно в репозиторий курса (в соответствующую ветку!) для проверки (также через *contribute*). - -return: прикрепите ссылку на pull-request тимлида в Google Class (можете сделать от лица каждого члена команды, но это не обязательно). - -#### Советы - -- Задание не требует написания большого или сложного кода на python, но является достаточно сложным с точки зрения синхронизации членов команды. Лучший способ сделать его - это устроить командный созвон в Zoom / Discord / Google meet / … и всем вместе выполнить его. Вы можете делать демонстрацию экрана тимлида чтобы все поняли что происходит или экранов коллег которым нужна помощь. -- В работе с Git всегда что-то может пойти не так. Существует несколько способов отмены изменений, которые стоит освоить в ходе учебы в ИБ. Тем не менее, первое время нет ничего плохого в том чтобы просто удалить всё и начать заново! -- Задание может вызывать трудности в работе с Git. Пока еще только начало сентября и скорее всего нет завалов по другим делам - я советую потратить лишнее время и разобраться в пробелах. - -#### Дополнительное задание - -1. Прикрепите в `README.md` файле скриншот созвона вашей команды. - -#### Разбалловка - -- За каждую из 5 функций с осмысленным сообщением коммита и своим автором - **1.6 балла** (итого 1.6 * 5 = 8) -- За наличие полноценного README - **1 балл** -- За правильную структуру форков как описано выше - **1 балл** -- За доп. задание - **1 доп. балл** - -Баллы начисляются всем членам команды одинаково. - -#### Предполагаемый **учебный результат** - -Это задание позволит получить реальный опыт работы с Git и GitHub в командных проектах. Далее этот навык окажется незаменимым. Также это задание позволит вам познакомиться с сокурсниками. - -Удачи! ✨✨ +![alt text](https://drive.google.com/uc?export=view&id=181Ll1FVtIYlqSVfIOlHKuLzf1bF7Y1V1) From fc9f0044122e9b2fec45f7cbcb8fdbe9c8cc89ec Mon Sep 17 00:00:00 2001 From: VovaGrig Date: Tue, 12 Sep 2023 21:45:25 +0300 Subject: [PATCH 17/21] Fix main function --- HW2_Grigoriants/calculator.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/HW2_Grigoriants/calculator.py b/HW2_Grigoriants/calculator.py index 273c3d9..bb54b51 100644 --- a/HW2_Grigoriants/calculator.py +++ b/HW2_Grigoriants/calculator.py @@ -10,9 +10,9 @@ def multiplication(num1, num2): #multiplication of numbers def main(): #accepts input, transmits to corresponding function and returns answer my_string = input() - num1 = float(my_string.split[0]) - num2 = float(my_string.split[2]) - sign = my_string.split[1] + num1 = float(my_string.split()[0]) + num2 = float(my_string.split()[2]) + sign = my_string.split()[1] if sign == "+": ans = plus(num1, num2) elif sign == "-": From db1237c7080f1dbd67ff34692f443554fde1038f Mon Sep 17 00:00:00 2001 From: VovaGrig Date: Tue, 12 Sep 2023 21:52:49 +0300 Subject: [PATCH 18/21] Update division function in calculator.py for true mathematicians --- HW2_Grigoriants/calculator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/HW2_Grigoriants/calculator.py b/HW2_Grigoriants/calculator.py index bb54b51..24203a1 100644 --- a/HW2_Grigoriants/calculator.py +++ b/HW2_Grigoriants/calculator.py @@ -1,6 +1,9 @@ ### This will be our great calculator. Please contribute by writing one of the functions def division(num1, num2): #division of numbers - return num1 / num2 + if num2 == 0: + return "Dude, for real?" + else: + return num1 / num2 def plus(num1, num2): #sum of numbers return num1 + num2 From 45a4ffe8eb6deb538631661254014835ea05aba7 Mon Sep 17 00:00:00 2001 From: MariaLukina Date: Wed, 13 Sep 2023 03:21:02 +0700 Subject: [PATCH 19/21] Add function minus --- HW2_Grigoriants/calculator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/HW2_Grigoriants/calculator.py b/HW2_Grigoriants/calculator.py index 24203a1..a0ebff9 100644 --- a/HW2_Grigoriants/calculator.py +++ b/HW2_Grigoriants/calculator.py @@ -11,6 +11,9 @@ def plus(num1, num2): #sum of numbers def multiplication(num1, num2): #multiplication of numbers return num1 * num2 +def minus (num1, num2): + return num1 - num2 + def main(): #accepts input, transmits to corresponding function and returns answer my_string = input() num1 = float(my_string.split()[0]) @@ -26,4 +29,4 @@ def main(): #accepts input, transmits to corresponding function and returns answ ans = division(num1, num2) return ans answer = main() -print(answer) \ No newline at end of file +print(answer) From 8499af9a86652b884caeede2e54be79dc67e0056 Mon Sep 17 00:00:00 2001 From: Vladimir Grigoriants Date: Wed, 13 Sep 2023 00:33:37 +0400 Subject: [PATCH 20/21] Update README.md --- HW2_Grigoriants/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HW2_Grigoriants/README.md b/HW2_Grigoriants/README.md index 000c89e..c72d456 100644 --- a/HW2_Grigoriants/README.md +++ b/HW2_Grigoriants/README.md @@ -10,4 +10,4 @@ Инсайд с нашего собрания: -![alt text](https://drive.google.com/uc?export=view&id=181Ll1FVtIYlqSVfIOlHKuLzf1bF7Y1V1) +![image](https://drive.google.com/uc?export=view&id=181Ll1FVtIYlqSVfIOlHKuLzf1bF7Y1V1) From c6ff335fd268556b92fa3bf54ffbc61c2279ff34 Mon Sep 17 00:00:00 2001 From: VovaGrig Date: Wed, 13 Sep 2023 11:21:56 +0300 Subject: [PATCH 21/21] Add README.md with hometask to the root directory --- README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1664a01 --- /dev/null +++ b/README.md @@ -0,0 +1,49 @@ +# HW2_Git_and_python +*This is the repo for the second homework of the BI Python 2023 course* + +### Homework description +В качестве данного ДЗ вам будет необходимо познакомиться с командной работой через GitHub, а также освежить в памяти основые концепции языка Python, которые вы проходили во вступительном курсе. Прочтите внимательно все инструкции перед тем приступить к выполнению задания, при необоходимости задавайте вопросы в общем чате или личных сообщениях. Текст задания большой потому что подробный. Со временем подробностей в ДЗ будет меньше (хорошо ли это?). + +#### Основное задание + +В этом задании вам надо будет написать мини-программу `calculator.py`. Программа должна принимать на вход (через `input()`) строку с некоторым математическим выражением и печатать число - результат вычисления этого выражения. Гарантируется что выражение состоит из двух чисел (`int` или `float`) и математического оператора между ними (один из 4: `+ - * /`). Все указанные элементы разделены пробелами (пример: `5 - 3`). Реализуйте внутри скрипта 5 функций: `main` и 4 отдельные функции на каждый из типов математических операций. Функция `main` внутри себя должна принимать входное выражение, отдавать его на вычисление соответствующей функции, получать результат и печатать его на экран. Каждая из 4 функций лишь принимает определенное выражение от главной функции, вычисляет его и возвращает результат главной функции. + +**Tехническое требование к заданию.** + +Это задание будет выполняться в командах по 4-5 человек. Каждый из членов команды должен внести ***как минимум*** 1 функцию в скрипт `calculator.py`. Каждое внесение функции должно сопровождаться коммитом с осмысленным описанием коммита. Ниже приведена последовательность действий для успешного выполнения задания: + +1. Посмотрите состав своей команды здесь ([**ССЫЛКА**](https://plausible-cannon-091.notion.site/Teams-for-HW2-429f378d25db4723a2979cd5434efc95?pvs=4)). Самостоятельно выбирете тимлида в вашей команде. Распределите кто какую из 5-и функций будет писать. +2. Тимлид должен сделать форк данного репозитория (убедитесь что вы убрали галочку в пункте **`Copy the** master **branch only`)**. Тимлид **создает новую ветку** `HW2_`. После этого тимлид отправляет каждому ссылку на форкнутый репозиторий. +3. Каждый член команды делает свой собственный форк с репозитория тимлида. После этого клонирует свой собственный форк к себе на локальный компьютер. +4. Локально в этом репозитории пишет в скрипте его часть работы. Скрипт `calculator.py` должен лежать в папке `HW2_` и может быть либо создан тимлидом в пункте 2 (тогда члены команды пишут код в имеющемся файле), либо же каждый член команды создает локально данный файл независимо от коллег. Это на выбор команды. +5. Каждый член команды после завершения своей части работы коммитит свои локальные изменения с ************************осмысленным************************ сообщением коммита и делает push в свой удаленный репозиторий. На этом этапе вам может потребоваться сделать синхронизацию с репозиторием тимлида, если там уже произошли изменения (это во вкладке *sync fork* → *fetch*, см. скриншот в [Notion](https://plausible-cannon-091.notion.site/Python-course-8b1f0f28506543bcba2a74c9b411a6cb)) +6. После этого из персональных удаленных репозиториев делается *pull-request* в репозиторий тимлида **в ветку** `HW2_` чтобы собрать все куски кода воедино (это во вкладке *contribute* → *open pull request*, см. скриншот) +7. Тимлид (или любой другой член команды) дополняет общий репозиторий файлом `README.md` который содержит описание вашей мини-программы и состав команды разработчиков. +8. После завершения работы тимлид делает *pull-request* вашего командного репозитория обратно в репозиторий курса (в соответствующую ветку!) для проверки (также через *contribute*). + +return: прикрепите ссылку на pull-request тимлида в Google Class (можете сделать от лица каждого члена команды, но это не обязательно). + +#### Советы + +- Задание не требует написания большого или сложного кода на python, но является достаточно сложным с точки зрения синхронизации членов команды. Лучший способ сделать его - это устроить командный созвон в Zoom / Discord / Google meet / … и всем вместе выполнить его. Вы можете делать демонстрацию экрана тимлида чтобы все поняли что происходит или экранов коллег которым нужна помощь. +- В работе с Git всегда что-то может пойти не так. Существует несколько способов отмены изменений, которые стоит освоить в ходе учебы в ИБ. Тем не менее, первое время нет ничего плохого в том чтобы просто удалить всё и начать заново! +- Задание может вызывать трудности в работе с Git. Пока еще только начало сентября и скорее всего нет завалов по другим делам - я советую потратить лишнее время и разобраться в пробелах. + +#### Дополнительное задание + +1. Прикрепите в `README.md` файле скриншот созвона вашей команды. + +#### Разбалловка + +- За каждую из 5 функций с осмысленным сообщением коммита и своим автором - **1.6 балла** (итого 1.6 * 5 = 8) +- За наличие полноценного README - **1 балл** +- За правильную структуру форков как описано выше - **1 балл** +- За доп. задание - **1 доп. балл** + +Баллы начисляются всем членам команды одинаково. + +#### Предполагаемый **учебный результат** + +Это задание позволит получить реальный опыт работы с Git и GitHub в командных проектах. Далее этот навык окажется незаменимым. Также это задание позволит вам познакомиться с сокурсниками. + +Удачи! ✨✨