Conversation
Add function main that reads the input and integrates arithmetic func…
Add function divide for division
Push into MAIN!
Add function umn for multiplication
There was a problem hiding this comment.
Привет! (´• ω •`)ノ
Отличная работа, команда! Комментарии к коду вы найдете ниже.
-
О README.md: здорово, что вы расписали назначение программы и список участников с выполненной работой. И вообще всё выглядит миленько и красиво ヽ(・∀・)ノ. Было бы здорово добавить сюда небольшие примеры с тем как работает ваша программа и способ как можно скачать ваш репозиторий с гитхаба и запустить калькулятор) (git clone, python calculator.py и т.д.)
-
О коммитах и структуре репозитория: молодцы, что написали названия коммитов с большой буквы, на английском языке, начиная с глагола. На что стоит обратить внимание:
- Коммит 'Add function main that reads the input and integrates arithmetic functions' слишком большой, намного больше рекомендованных 50 символов. Возможно стоит упростить название до 'Add main function'.
- Название коммитов, и в дальнейшем функций, можно было бы оставить в английском варианте. Например, Add substraction function и название функции аналогичное substraction, вместо функции minus. Аналогично со slo, umn и divide. Тут простой совет - не стоит усложнять названия)
- О коде будет комментарий чуть ниже в виде построчного ревью.
Баллы: 10/10 (README) + 10/10 (Forks) + 80/80 (код и коммиты) + 10 доп. =
= 100/100 + 10 доп. = 110 баллов
В общем и целом вы проделали большую работу. Молодцы! (´。• ω •。`)
(тимлид, не забудь показать ревью всей команде)
|
|
||
| def divide(x, y): | ||
| if y == 0: | ||
| return "Деление на ноль не допустимо" |
There was a problem hiding this comment.
Обработка ошибки деления на ноль не требовалась, это избыточно. В базовом варианте программа бы упала на моменте деления на ноль, остановила выполнение и еще бы написала информацию об этом в стандартный поток ошибок. Не стоит избегать ошибок, они полезные) В данном случае это дополнительно некорректно реализовано, так как вы не делаете принт, а отдаете строчку в какую-то другую функцию main через return, и пользователь не видит ошибки.
| elif operator == '*': | ||
| return umn(x,y) | ||
| elif operator == '/': | ||
| return divide(x,y) |
There was a problem hiding this comment.
Самая большая проблема кода, что он не печатает вывод. Молодцы, что сделали return, но нужно было, чтобы программа печатала через print результат выполнения кода. Будьте внимательнее! (>_<)
Дополнительно можно было собрать все выводы в одну переменную result и с неё делать print и return.
Что-то такое:
if operator == "+":
result = slo(x, y)
elif operator == "-":
result = minus(x, y)
elif operator == "*":
result = umn(x, y)
elif operator == "/":
result = divide(x, y)
print(result)
return result
| if '.' in x: | ||
| x=float(x) | ||
| else: | ||
| x=int(x) | ||
| if '.' in y: | ||
| y=float(y) | ||
| else: | ||
| y=int(y) |
There was a problem hiding this comment.
От вас не требовалась обработка десятичных чисел, но здорово, что вы добавили этот момент. Так держать! (ノ◕ヮ◕)ノ*:・゚
Вариант покороче: num1 = float(num1) if "." in a else int(num1)
| calc = input("Введите ваше выражение (например: 5 - 3): ") | ||
| parts = calc.split() | ||
| operator = parts[1] | ||
| x = parts[0] | ||
| y = parts[2] |
There was a problem hiding this comment.
Можно вот так покороче сделать:
num1, operator, num2 = input().split()
| @@ -0,0 +1,41 @@ | |||
| def slo(x,y): | |||
There was a problem hiding this comment.
Не стоит давать переменным однобуквенные обозначения (такие как x и y), это противоречит документации PEP8 и несет мало смысла. Можно обозначить переменные, например, как num1 и num2. В будущем вас познакомят с программами для автоматической проверки кода на документацию PEP8, такими как black и flake8. Они значительно облегчат вам жизнь!
| return x / y | ||
|
|
||
| def main(): | ||
| calc = input("Введите ваше выражение (например: 5 - 3): ") |
There was a problem hiding this comment.
Описания команд по аналогии с ридми стоит писать на английском (например, заменить "Введите ваше выражение (например: 5 - 3): " на "Enter your expression (for example: 5 - 3): ")
Create calculator.py
Enjoy!