Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
ede2257
Основной файл запуск программы
Stepanovalera Sep 19, 2024
5b9b060
Удален файл main
Stepanovalera Sep 19, 2024
a8fed4f
создан файл Calculator.py
Stepanovalera Sep 19, 2024
4d1bea9
создан README, удалены images
Stepanovalera Sep 19, 2024
f983adf
Add calc() description to README.md
Sep 19, 2024
df46684
Add calc() function in calculator.py
Sep 19, 2024
f308468
Перенос файлов README.md и calculator.py в папку HW2_Stepanova
Sep 19, 2024
c129d37
добавлен файл calculator и README.md
Stepanovalera Sep 19, 2024
4819108
Инфо в README от Леры
Stepanovalera Sep 19, 2024
8041362
добавлена фукция main
Stepanovalera Sep 20, 2024
ae12e2a
Вернула README.md и изображения в ветку HW2_Stepanova
Sep 20, 2024
ade6c3b
Merge branch 'HW2_Stepanova' into HW2_Stepanova
Regadene Sep 20, 2024
a0bfe15
Вернула ошибочно удаленную функцию get_numbers()
Sep 20, 2024
eaa9954
Удалила неиспользующуюся картинку в README.md
Sep 20, 2024
348d11a
Поправила описание функции calculate(a,b,operator) в README.md
Regadene Sep 20, 2024
e74f497
Merge pull request #1 from Regadene/HW2_Stepanova
Stepanovalera Sep 20, 2024
66f9d88
добавлена функция end()
Sep 20, 2024
941f7df
Merge pull request #2 from Gabberpal/HW2_Stepanova
Stepanovalera Sep 20, 2024
3bb060c
добалена функция display(), изменена функция main()
Stepanovalera Sep 20, 2024
2d458bd
изменен README
Sep 20, 2024
8b6981a
Merge pull request #3 from Gabberpal/HW2_Stepanova
Stepanovalera Sep 20, 2024
c9a74b3
Добавлено описание функций display, main, выделение текста
Stepanovalera Sep 20, 2024
9766cc9
Обновлены переменные в коде до единого формата
Stepanovalera Sep 20, 2024
1630d7f
добавила фото созвона
Stepanovalera Sep 20, 2024
5aa3318
добавлена функция operation(expression)
NataKich Sep 21, 2024
e4c1525
добавлено описание функции operation
NataKich Sep 21, 2024
48cc41d
добавлено имя еще одного разработчика.
NataKich Sep 21, 2024
f6f3106
добавлено имя еще одного разработчика
NataKich Sep 21, 2024
5f27938
Merge pull request #5 from NataKich/HW2_Stepanova
Stepanovalera Sep 21, 2024
6bf9d43
добавлено имя разработчика
NataKich Sep 21, 2024
b085eb6
Merge pull request #7 from NataKich/HW2_Stepanova
Stepanovalera Sep 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions HW2_Stepanova/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
***Программа КАЛЬКУЛЯТОР***

Состав разработчиков: Степанова Валерия, Решетникова Галина, Юдин Данил,
Кичигина Наталья.

**Описание программы**

_Степанова В.:_

*main()* - представляет собой точку входа в программу, организуя основной цикл выполнения и координацию её основных компонентов. Осуществляет запуск все остальных функций.
*display()* - функция выводит результат вычислений
*get_numbers()* - функция принимает на вход выражение
состоящее из двух чисел в формате int() или float() и символ операции (+,-,*,/).
Пример: '5 + 6'; '123 / 5'

_Решетникова Г.:_

*calculate(a: float, b: float, operator: str)* - функция принимает на вход два числа и оператор и вычисляет выражение в соотвествии
с операцией (+,-,*,/). В случае введения иной операции выдает результат "Я умею только складывать,
вычитать, умножать и делить". В случае деления на ноль выдает результат "Ошибка: Деление на ноль!".
Помимо этого добавлен вывод результата print(f"Результат: {result}").

_Юдин Д.:_

*end()* -- булева функция, которая спрашивает пользователя, хочет ли он
продолжить вычисления. Функция выводит FALSE, если пользователь отвечает
"нет".

_Кичигина Н.:_

*operation(expression)* --Функция operation(expression) принимает на вход одну
переменную в формате str()- выражение для вычисления.
Далее функция split разделяет данную строку на подстроки по разделителю
(по умолчанию- символ пробела).
Переменным a,oper,b поочерёдно присваиваются значения этих подстрок.
Переменным a,b указывается тип float().
Функция возвращает три переменных: a-первое число выражения, тип float();
b- второе число выражения, тип float();
oper- арифметический знак выражения,
тип str()

Наш групповой звонок!

![alt text](call.jpg)

70 changes: 70 additions & 0 deletions HW2_Stepanova/calculator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# функция, которая спрашивает, хочет ли человек продолжить расчет
def end():
while True:
x = input('Вы хотите совершить еще один расчет?\nОтвет: да/нет ').lower()
if x == 'да':
return False
break
elif x == 'нет':
return True
break
else:
print('Неподходящий ответ')
Copy link

Choose a reason for hiding this comment

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

огонь!

зачем вам break после return?)


# функция возвращает F или T, соотвественно, в цикле ее можно указать в виде if end():
# if end():
# print('Конец программы')
# else:
# print('Расчет дальше')

def get_numbers():
exp = (input("Введите выражение: "))
return exp
Comment on lines +21 to +22
Copy link

Choose a reason for hiding this comment

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

Suggested change
exp = (input("Введите выражение: "))
return exp
return input("Введите выражение: ")


def operation(expression):
a,oper,b=expression.split()
a=float(a)
b=float(b)
return(a,b,oper)
Copy link

Choose a reason for hiding this comment

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

круто, что вынесли это отдельно!
здесь только бы добавить пробелов вокруг операторов



def calculate(a, b, oper):
if oper == "+":
result = a + b
elif oper == "-":
result = a - b
elif oper == "*":
result = a * b
elif oper == "/":
if b != 0:
return a / b
else:
return "Ошибка: Деление на ноль!"
Copy link

Choose a reason for hiding this comment

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

круто, что вспомнили про особый случай с делением!
при этом сам питон об этом тоже помнит, и напечатает вам ZeroDivisionError с понятным сообщением и traceback-ом
т.е. зачастую (правда обычно в достаточно тривиальных случаях) можно самим с ошибками не заморачиваться и делегировать всё это питону

Choose a reason for hiding this comment

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

Здравствуйте, Артём!
Спасибо за проверку и замечания :)

Comment on lines +39 to +42
Copy link

Choose a reason for hiding this comment

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

в случаях, когда обе ветки в if/else заканчиваются return-ом, обычно "экономят отступы":

Suggested change
if b != 0:
return a / b
else:
return "Ошибка: Деление на ноль!"
if b != 0:
return a / b
return "Ошибка: Деление на ноль!"

else:
result = "Я умею только складывать, вычитать, умножать и делить"
return result

def display(result):
print("Результат: ", result)

def main():
while True:
# Получение чисел
exp = get_numbers()

# Запрос операции
a,b,oper = operation(exp)

# Вычисление
result = calculate(a, b, oper)

# Вывод результат
display(result)

#Реализует функцию end()
if end():
print('Конец программы')
break
Copy link

Choose a reason for hiding this comment

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

здесь хочется увеличить отступ у комментариев на ещё один уровень


if __name__ == "__main__":
main()
Binary file added HW2_Stepanova/call.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.