main
Сергей Ванюшкин 2023-10-11 23:44:24 +03:00
parent fb960ed3a7
commit fdba4e7dbb
2 changed files with 90 additions and 0 deletions

View File

@ -0,0 +1,11 @@
Дз 2. Знакомство с переменными и базовыми функциями
Создайте программу-калькулятор, которая будет выполнять простые математические операции: сложение, вычитание. Программа должна предложить пользователю выбрать операцию, затем ввести два числа и вывести результат операции.
Шаги:
Поприветствуйте пользователя и покажите список доступных операций: "+", "-"
Попросите пользователя выбрать операцию, введя соответствующий символ.
Затем попросите пользователя ввести первое число.
Затем попросите пользователя ввести второе число.
Выполните выбранную операцию над введенными числами.
Выведите результат пользователю.
Добавьте умножение.
Добавьте деление.

View File

@ -0,0 +1,79 @@
"""
Модуль является результатом выполнения практической
домашней работы по теме
"Знакомство с переменными и базовые функции"
:copyright: Сергей Ванюшкин <pi3c@yandex.ru>
:git: https://git.pi3c.ru/pi3cStudyRepo_Synergy/part1_basic/lesson1
:license: MIT
2023г.
"""
from decimal import Decimal, DecimalException, DivisionByZero
MATH_SYMBOLS = ("+", "-", "*", "/")
def get_num_from_str(string: str) -> int | Decimal | None:
"""Функция валидации и преобразования строки в число.
Проверяет коректность строки и определяет тип
для преобразования строки в числовой тип.
Параметры:
<string> - Число в строковом представлении
Возвращаемые значения:
- num: int Вернет число типа int, если строка может быть
преобразована в целое число
- num: Decimal Если в строке есть точка или запятая
- None Если строку нельзя преобразовать в число
"""
string = string.replace(",", ".")
try:
num = int(string)
return num
except ValueError:
pass
try:
num = Decimal(string)
return num
except DecimalException:
pass
return
print("Привет, Пользователь. Это простой калькулятор")
print("Вам доступны операции: ", *MATH_SYMBOLS)
symbol = input("Введите операцию: ")
while symbol not in MATH_SYMBOLS:
symbol = input("Ошибка, введите коректную операцию: ")
while True:
num1 = get_num_from_str(input("Введите первое число:\n"))
if num1 is not None:
break
print("Ошибка ввода!\n")
while True:
num2 = get_num_from_str(input("Введите второе число:\n"))
if num2 is not None:
break
print("Ошибка ввода!\n")
match symbol:
case "+":
print("Сумма равна:", num1 + num2)
case "-":
print("Разница равна:", num1 - num2)
case "*":
print("Произведение равно:", num1 * num2)
case "/":
try:
print("Частное равно", num1 / num2)
except (DivisionByZero, ZeroDivisionError):
print("Are you crazy, dumbass?\nDivision by Zero, E_P_T")