СРОЧНО ПОМОГИТЕ!!! PYTHON
Создайте класс Rectangle, задающий прямоугольник, параллельный осям координат. Прямоугольник будет задаваться двумя характеристиками: шириной и высотой. Создайте для него описанные ниже методы (заготовка класса представлена в виде псевдокода).


class Rectangle:
w -> integer // Ширина
h -> integer // Высота
Rectangle(w -> integer, h -> integer); // Конструктор

width() -> integer; // Получить ширину
height() -> integer; // Получить высоту

area() -> float; // Площадь
perimeter() -> float; // Периметр

С помощью написанного класса вычислите площадь и периметр прямоугольника, вводимого с клавиатуры.
Формат входных данных
С клавиатуры вводятся два натуральных числа числа — W и H (ширина и высота соответственно). Оба числа не превышают 1000.
Формат выходных данных
Требуется вывести два вещественных числа — площадь и периметр прямоугольника.
входные данные выходные данные
3 4 12.0000 14.0000


КЛАСС ДОЛЖЕН НАХОДИТЬСЯ НАД ЭТИМ КОДОМ(это проверка написания)

import sys
import logging

logging.basicConfig(format='%(message)s')

try:
r = Rectangle(10, 20)
except NameError:
logging.error('В программе не объявлен класс Rectangle')
sys.exit(1)
except TypeError:
logging.error('В конструктор класса Rectangle нужно передавать два числа')
sys.exit(1)

try:
if r.w != 10:
logging.error('В поле "w" объекта Rectangle не записана ширина')
sys.exit(1)
except AttributeError:
logging.error('В объекте Rectangle отсутствует поле "w"')
sys.exit(1)

try:
if r.h != 20:
logging.error('В поле "h" объекта Rectangle не записана высота')
sys.exit(1)
except AttributeError:
logging.error('В объекте Rectangle отсутствует поле "h"')
sys.exit(1)

try:
if r.width() != 10:
logging.error('Метод "width" объекта Rectangle должен возвращать ширину объекта')
sys.exit(1)
except AttributeError:
logging.error('В объекте Rectangle отсутствует метод "width"')
sys.exit(1)

try:
if r.height() != 20:
logging.error('Метод "height" объекта Rectangle должен возвращать высоту объекта')
sys.exit(1)
except AttributeError:
logging.error('В объекте Rectangle отсутствует метод "height"')
sys.exit(1)

try:
a = r.area()
if not isinstance(a, float):
logging.error('Метод "area" объекта Rectangle должен возвращать вещественное число')
sys.exit(1)
if a != 200.0:
logging.error('Метод "area" объекта Rectangle должен возвращать площадь объекта')
sys.exit(1)
except AttributeError:
logging.error('В объекте Rectangle отсутствует метод "area"')
sys.exit(1)

try:
p = r.perimeter()
if not isinstance(p, float):
logging.error('Метод "perimeter" объекта Rectangle должен возвращать вещественное число')
sys.exit(1)
if p != 60.0:
logging.error('Метод "perimeter" объекта Rectangle должен возвращать периметр объекта')
sys.exit(1)
except AttributeError:
logging.error('В объекте Rectangle отсутствует метод "perimeter"')
sys.exit(1)


qwmateo: выходные данные 12.0000 14.0000

Ответы

Ответ дал: asilvejstruk
1

class Rectangle:

   def __init__(self, w, h):

       self.w = w

       self.h = h

   

   def width(self):

       return self.w

   

   def height(self):

       return self.h

   

   def area(self):

       return self.w * self.h

   

   def perimeter(self):

       return 2 * (self.w + self.h)


qwmateo: можешь пожалуйста написать чтобы функция area и perimeter возвращали вещественные числа?
qwmateo: можешь пожалуйста написать чтобы код выводит вещественные числа
asilvejstruk: w,h = map(int, input().split())
r = Rectangle(w, h)
print("%.4f %.4f" % (r.area(), r.perimeter()))
asilvejstruk: import sys
import logging

logging.basicConfig(format='%(message)s')

class Rectangle:
def init(self, w, h):
self.w = w
self.h = h
def width(self):
return self.w
def height(self):
return self.h
def area(self):
return float(self.wself.h)
def perimeter(self):
return float(2*(self.w+self.h))

w,h = map(int, input().split())
r = Rectangle(w, h)
print("%.4f %.4f" % (r.area(), r.perimeter()))
Вас заинтересует