Я долго пытался решить эту проблему, но где-то я ошибся, я думаю, и не могу определить ошибку.
Проблема:
Определите класс ' Circle ' со следующими характеристиками:
- Определите метод класса ' init ', который инициализирует круг с атрибутом 'radius' со следующими ограничениями:
- ' radius ' должно быть числовым c значением. В противном случае выведите TypeError с сообщением об ошибке «радиус должен быть числом».
- ' radius ' должен быть в диапазоне от 0 до 1000 включительно с обеих сторон. Если нет, вызовите ValueError с сообщением об ошибке «радиус должен быть от 0 до 1000 включительно».
- Определите метод класса ' area ', который вычисляет площадь круг и возвращает значение, округленное до 2 десятичных знаков. Подсказка: используйте значение 'pi' из модуля 'math'.
- Определите метод класса ' окружность ', который вычисляет окружность круга и возвращает округленное значение до 2 десятичных знаков. Подсказка: используйте значение 'pi' из модуля 'math'.
Определите класс проверки носа ' TestingCircleCreation ', который проверяет поведение ' __init __ 'метод со следующими тестами:
- Определить метод теста носа' test_creating_circle_with_numeric_radius ', который создает круг с радиусом 2.5 и проверяет, является ли его значение радиуса 2.5.
- Определение метода проверки носа ' test_creating_circle_with_negative_radius ', который проверяет, возникает ли исключение ValueError с сообщением об ошибке «радиус должен быть от 0 до 1000 включительно», при создании круга радиуса -2,5. Подсказка: используйте assert_raises и with.
- Определите метод проверки носа ' test_creating_circle_with_greaterthan_radius ', который проверяет, возникает ли исключение ValueError с сообщением об ошибке «радиус должен быть между 0 и 1000 включительно» при создании круга радиуса 1000.1. Подсказка: используйте assert_raises и с помощью
- Определите метод проверки носа ' test_creating_circle_with_nonnumeric_radius ', который проверяет, возникает ли исключение TypeError с сообщением об ошибке «радиус должен быть числом», при создании круга радиуса «привет». Подсказка: используйте assert_raises и с.
Я пробовал это, но он показывает ошибку.
class Circle:
def __init__(self, radius):
# Define the initialization method below
self.radius=radius
if not isinstance(self.radius,(int,float)):
raise TypeError("radius must be a number")
elif(self.radius>1000 or self.radius<0):
raise ValueError("radius must be between 0 and 1000 inclusive")
else:
pass
def area(self):
# Define the area functionality below
return math.pi*(self.radius**2)
def circumference(self):
return 2*math.pi*self.radius
# Define the circumference functionality below
class TestingCircleCreation:
def test_creating_circle_with_numeric_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
def test_creating_circle_with_negative_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(ValueError):
Circle(-2.5)
def test_creating_circle_with_greaterthan_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(ValueError):
Circle(1000.1)
def test_creating_circle_with_nonnumeric_radius(self):
c1=Circle(2.5)
assert c1.radius==2.5
with assert_raises(TypeError):
Circle('hello')