Все дело в том. что в инпут всегда помещается строка. Всегда!
А если тебе надо в результате сложения числе 2+2 получить 4, а не 22, то ты тогда и переводишь строку в начале в числа, а уже затем складываешь.
Тайпы это просто способ проверить, что там за данные. В хорошем редакторе кода, к примеру в ВсКод сразу показывается что там за тип данных, по этому для меня эта проверка вообще бесполезная.
Но по сути можно использовать проверку типов в самом коде, когда создаешь условия.
class Shape:
def __init__(self, name):
self.name = name
def area(self):
raise NotImplementedError("Метод area должен быть реализован в подклассах")
class Rectangle(Shape):
def __init__(self, name, width, height):
super().__init__(name)
self.width = width
self.height = height
def area(self):
return self.width * self.height
class Circle(Shape):
def __init__(self, name, radius):
super().__init__(name)
self.radius = radius
def area(self):
return 3.14159 * self.radius**2
def get_shape_area(shape):
if type(shape) == Rectangle:
return shape.area()
elif type(shape) == Circle:
return shape.area()
else:
return "Неверный тип фигуры"
shape_name = input("Введите название фигуры (Rectangle или Circle): ")
if shape_name == "Rectangle":
width = float(input("Введите ширину: "))
height = float(input("Введите высоту: "))
shape = Rectangle(shape_name, width, height)
elif shape_name == "Circle":
radius = float(input("Введите радиус: "))
shape = Circle(shape_name, radius)
else:
print("Неверное название фигуры")
exit()
area = get_shape_area(shape)
print(f"Площадь {shape.name} равна: {area}")
int - делает число целое, но зачем мы тогда int вставляем в input, например:
a = int(input("блалалала"))