Conversation
…айл README.md с описанием функции
Subtraction and float-testing functions
Deleted substraction()
Write author info and correct draft from Nastya
by Tsymbalova
add summation
add modified subtraction function
Multiplication Tsymbalova
PR after fix dividing() and README.md_Pomeranets
Add arguments to functions in main()
Add info about is_float() and subtraction()
nvaulin
left a comment
There was a problem hiding this comment.
Привет!
Хорошая работа:) Конкретные комментарии можете найти ниже.
Могу похвалить очень здоровский ридми и хорошие идеи по коду. Но общая структура калькулятора получилась прям очень непричесанной:) Кто в лес кто по дрова. В будущем будет чуть проще, так как задания чаще будут индивидуальные. Но теперь вы понимаете что git позвоялет хоть немного упростить синхронизацию в командных проектах, ибо она ооочень сложная (даже в таком микрокалькуляторе)
by the way хочу еще обратить внимание на то мы на самой первой лекции разбирали как хорошо писать сообщения коммитов. Например у вас есть:
- add summation (с маленькой буквы)
- Реализована функция деления с обработкой деления на ноль + дополнен файл README.md с описанием функции (кто этот огромный русскоязычный монстр.... ахах)
Баллы: 10/10 (README) + 10/10 (Forks) + 69/80 (код и коммиты) + 10 доп. =
= 89/100 + 10 доп.
Молодцы!
(тимлид, не забудь показать ревью всей команде)
| `git clone git@github.com:opalinn/HW2_Malysheva.git` | ||
|
|
||
| 3. Перейдите в папку, содержащую необходимый файл: | ||
|
|
||
| `cd HW2_Malysheva` |
There was a problem hiding this comment.
Иногда это даже в одну строку пишут:
| `git clone git@github.com:opalinn/HW2_Malysheva.git` | |
| 3. Перейдите в папку, содержащую необходимый файл: | |
| `cd HW2_Malysheva` | |
| `git clone git@github.com:opalinn/HW2_Malysheva.git && cd HW2_Malysheva` |
| ## Авторы | ||
|
|
||
| - Юлия Зайцева (zaitsevm)— реализация функций `substraction()` и `is_float()` | ||
| - Александр Комолов (askomolov) — реализация функции `summation()`, описание функции для README.md | ||
| - Полина Малышева (opalinn) — тимлид, реализация `main()`, коррекция README.md | ||
| - Анастасия Померанец (anapomerash) — реализация функции `dividing()`, драфт README.md | ||
| - Евгения Цымбалова (Aurinko23) — реализация функции `multiplication()`, описание функции для README.md | ||
|
|
||
| ## Zoom team meeting | ||
|
|
||
|  | ||
|
|
||
| ## Требования | ||
|
|
||
| - Python 3.12.x | ||
|
|
||
| ## Замечания | ||
|
|
||
| - Программа ожидает, что пользователь вводит выражение с пробелами между числами и оператором, например, 10 / 2. | ||
| - В случае отсутствия пробелов или некорректного формата ввода программа может вызвать ошибку. | ||
|
|
||
| ## Контакты | ||
|
|
||
| Если у вас возникли вопросы или предложения, пожалуйста, свяжитесь с нами: pp.malysheva@gmail.com |
There was a problem hiding this comment.
Очень здоровское ридми! Прям описаны всякие детали, есть пример и контакты. И еще лайк что прописали прям кто что делал.
| def main(string): | ||
| for_calculating = string.split() | ||
| if "+" in for_calculating: |
There was a problem hiding this comment.
Вот тут такой момент. Смотрите, у вас main берет эту сырую строчку и сразу отдает любой из функций. В итоге каждая функция сама по себе разбирается с тем что же в этой строчке лежит. Это работает, но не очень здорово. По сути отвественность математических функций - просто делать математику. Пусть main для них заранее (один раз!) переварит всё по float. И вам не надо будет в начале каждой функции повторять этот код:)
| if operand2 == 0: | ||
| return "Ошибка: Деление на ноль" |
There was a problem hiding this comment.
Здорово что решили это учесть, но на самом деле это избыточно. Ведь в базовом варианте она бы упала на поменте деления на ноль, остановила выполнение и еще бы написала информацию об этом в стандартный поток ошибок! Так гораздо лучше, да и, собственно, ошибки в программировании за тем и были придуманы. Их не надо избегать, они очень полезные.
| def is_float(n: str) -> bool: | ||
| try: | ||
| float(n) | ||
| return True | ||
| except ValueError: | ||
| return False |
There was a problem hiding this comment.
Ухх, ну это прям очень мудрено если честно:). В питоне есть для этого буквально обычная функция:
isinstance(var, float)
| def multiplication(for_calculating): | ||
| if is_float(for_calculating[0]) and is_float(for_calculating[2]): | ||
| return float(for_calculating[0]) * float(for_calculating[2]) | ||
| else: | ||
| print('Что-то не так с введенными данными, проверь!') | ||
|
|
||
| def subtraction(for_calculating): | ||
| numbers = [] | ||
| for i in for_calculating: | ||
| if i.isnumeric() or is_float(i): | ||
| numbers.append(float(i)) | ||
| return(numbers[0] - numbers[1]) |
There was a problem hiding this comment.
На самом деле если честно немного пугает нааасколько разношерстные у вас функции. Почему умножение проверяет что данные float, а сложние нет? Почему кто-то что-то от себя печатает. Почему какие-то процедуры распаковывают операнды в отдельные переменные, какие-то просто сразу делают return а какие то итерируются в цикле поэлементно?
| string = input("Введите математическую операцию: ") | ||
| print(main(string)) |
There was a problem hiding this comment.
Я бы это тоже убрал в main, но не страшно

No description provided.