lesson2
parent
fb960ed3a7
commit
fdba4e7dbb
|
@ -0,0 +1,11 @@
|
||||||
|
Дз 2. Знакомство с переменными и базовыми функциями
|
||||||
|
Создайте программу-калькулятор, которая будет выполнять простые математические операции: сложение, вычитание. Программа должна предложить пользователю выбрать операцию, затем ввести два числа и вывести результат операции.
|
||||||
|
Шаги:
|
||||||
|
Поприветствуйте пользователя и покажите список доступных операций: "+", "-"
|
||||||
|
Попросите пользователя выбрать операцию, введя соответствующий символ.
|
||||||
|
Затем попросите пользователя ввести первое число.
|
||||||
|
Затем попросите пользователя ввести второе число.
|
||||||
|
Выполните выбранную операцию над введенными числами.
|
||||||
|
Выведите результат пользователю.
|
||||||
|
Добавьте умножение.
|
||||||
|
Добавьте деление.
|
|
@ -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")
|
Loading…
Reference in New Issue