diff --git a/HW2_Stepanova/README.md b/HW2_Stepanova/README.md new file mode 100644 index 0000000..81044f1 --- /dev/null +++ b/HW2_Stepanova/README.md @@ -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) + diff --git a/HW2_Stepanova/calculator.py b/HW2_Stepanova/calculator.py new file mode 100644 index 0000000..01dcae3 --- /dev/null +++ b/HW2_Stepanova/calculator.py @@ -0,0 +1,70 @@ +# функция, которая спрашивает, хочет ли человек продолжить расчет +def end(): + while True: + x = input('Вы хотите совершить еще один расчет?\nОтвет: да/нет ').lower() + if x == 'да': + return False + break + elif x == 'нет': + return True + break + else: + print('Неподходящий ответ') + +# функция возвращает F или T, соотвественно, в цикле ее можно указать в виде if end(): +# if end(): +# print('Конец программы') +# else: +# print('Расчет дальше') + +def get_numbers(): + exp = (input("Введите выражение: ")) + return exp + +def operation(expression): + a,oper,b=expression.split() + a=float(a) + b=float(b) + return(a,b,oper) + + +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 "Ошибка: Деление на ноль!" + 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 + +if __name__ == "__main__": + main() diff --git a/HW2_Stepanova/call.jpg b/HW2_Stepanova/call.jpg new file mode 100644 index 0000000..8332bf7 Binary files /dev/null and b/HW2_Stepanova/call.jpg differ