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