Skip to content

HW2_Malysheva#15

Open
opalinn wants to merge 26 commits intoPython-BI-2024-25:mainfrom
opalinn:HW2_Malysheva
Open

HW2_Malysheva#15
opalinn wants to merge 26 commits intoPython-BI-2024-25:mainfrom
opalinn:HW2_Malysheva

Conversation

@opalinn
Copy link

@opalinn opalinn commented Sep 20, 2024

No description provided.

polinam and others added 26 commits September 19, 2024 00:34
Subtraction and float-testing functions
Write author info and correct draft from Nastya
add modified subtraction function
PR after fix dividing() and README.md_Pomeranets
Add arguments to functions in main()
Add info about  is_float() and  subtraction()
Copy link
Contributor

@nvaulin nvaulin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Привет!
Хорошая работа:) Конкретные комментарии можете найти ниже.

Могу похвалить очень здоровский ридми и хорошие идеи по коду. Но общая структура калькулятора получилась прям очень непричесанной:) Кто в лес кто по дрова. В будущем будет чуть проще, так как задания чаще будут индивидуальные. Но теперь вы понимаете что git позвоялет хоть немного упростить синхронизацию в командных проектах, ибо она ооочень сложная (даже в таком микрокалькуляторе)

by the way хочу еще обратить внимание на то мы на самой первой лекции разбирали как хорошо писать сообщения коммитов. Например у вас есть:

Баллы: 10/10 (README) + 10/10 (Forks) + 69/80 (код и коммиты) + 10 доп. =
= 89/100 + 10 доп.

Молодцы!
(тимлид, не забудь показать ревью всей команде)

Comment on lines +22 to +26
`git clone git@github.com:opalinn/HW2_Malysheva.git`

3. Перейдите в папку, содержащую необходимый файл:

`cd HW2_Malysheva`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Иногда это даже в одну строку пишут:

Suggested change
`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`

Comment on lines +90 to +113
## Авторы

- Юлия Зайцева (zaitsevm)— реализация функций `substraction()` и `is_float()`
- Александр Комолов (askomolov) — реализация функции `summation()`, описание функции для README.md
- Полина Малышева (opalinn) — тимлид, реализация `main()`, коррекция README.md
- Анастасия Померанец (anapomerash) — реализация функции `dividing()`, драфт README.md
- Евгения Цымбалова (Aurinko23) — реализация функции `multiplication()`, описание функции для README.md

## Zoom team meeting

![Изображение](https://github.com/opalinn/HW2_Malysheva/blob/HW2_Malysheva/HW2_Malysheva/zoom_meeting_hw2.jpg)

## Требования

- Python 3.12.x

## Замечания

- Программа ожидает, что пользователь вводит выражение с пробелами между числами и оператором, например, 10 / 2.
- В случае отсутствия пробелов или некорректного формата ввода программа может вызвать ошибку.

## Контакты

Если у вас возникли вопросы или предложения, пожалуйста, свяжитесь с нами: pp.malysheva@gmail.com
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Очень здоровское ридми! Прям описаны всякие детали, есть пример и контакты. И еще лайк что прописали прям кто что делал.

Comment on lines +1 to +3
def main(string):
for_calculating = string.split()
if "+" in for_calculating:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вот тут такой момент. Смотрите, у вас main берет эту сырую строчку и сразу отдает любой из функций. В итоге каждая функция сама по себе разбирается с тем что же в этой строчке лежит. Это работает, но не очень здорово. По сути отвественность математических функций - просто делать математику. Пусть main для них заранее (один раз!) переварит всё по float. И вам не надо будет в начале каждой функции повторять этот код:)

Comment on lines +17 to +18
if operand2 == 0:
return "Ошибка: Деление на ноль"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здорово что решили это учесть, но на самом деле это избыточно. Ведь в базовом варианте она бы упала на поменте деления на ноль, остановила выполнение и еще бы написала информацию об этом в стандартный поток ошибок! Так гораздо лучше, да и, собственно, ошибки в программировании за тем и были придуманы. Их не надо избегать, они очень полезные.

Comment on lines +26 to +31
def is_float(n: str) -> bool:
try:
float(n)
return True
except ValueError:
return False
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ухх, ну это прям очень мудрено если честно:). В питоне есть для этого буквально обычная функция:
isinstance(var, float)

Comment on lines +33 to +44
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])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

На самом деле если честно немного пугает нааасколько разношерстные у вас функции. Почему умножение проверяет что данные float, а сложние нет? Почему кто-то что-то от себя печатает. Почему какие-то процедуры распаковывают операнды в отдельные переменные, какие-то просто сразу делают return а какие то итерируются в цикле поэлементно?

image

Comment on lines +46 to +47
string = input("Введите математическую операцию: ")
print(main(string))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я бы это тоже убрал в main, но не страшно

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants