Предмет: Информатика,
автор: qwmateo
СРОЧНО ПОМОГИТЕ!!! 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
Ответы
Автор ответа:
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)
r = Rectangle(w, h)
print("%.4f %.4f" % (r.area(), r.perimeter()))
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()))
Похожие вопросы
Предмет: Литература,
автор: berdnikovaaaxx
Предмет: Другие предметы,
автор: Hiimy
Предмет: Другие предметы,
автор: levchenkokate6
Предмет: Другие предметы,
автор: bezotechestvomaria
Предмет: Математика,
автор: Аноним