Advertisement
CosmicFox33

9.15

Jun 8th, 2022
623
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.85 KB | None | 0 0
  1. ##Разработать класс «2-мерный вектор», конструктор для инициализации, метод ввода, метод вывода __str__, перегруженную операцию
  2. ##< (меньше) сравнения длин дух векторов. Создать собственное исключение при проверке равенства одной из координат нулю при инициализации и
  3. ##установке. В установке добавить обработку этого исключения: вывести сообщение и вызвать метод ввода еще раз. В главной функции организовать
  4. ##тестирование всех возможностей разработанного класса.
  5.  
  6. class NullValInitExcption(Exception):
  7.     def __init__(self):
  8.         x = "ctho-to"
  9.  
  10.     def __str__(self):
  11.         return "NullValInitExcption has been raised"
  12.  
  13. class Vector:
  14.     def __init__(self, X, Y):
  15.         self.__x = X
  16.         self.__y = Y
  17.         try:
  18.             if self.__x == 0 and self.__y == 0:
  19.                 raise NullValInitExcption()
  20.         except NullValInitExcption as e:
  21.             print(e)
  22.  
  23.     def __lt__(self, other):
  24.         self_mag = (self.__x ** 2) + (self.__y ** 2)
  25.         other_mag = (other.__x ** 2) + (other.__y ** 2)
  26.         return self_mag < other_mag
  27.    
  28.     def v_set(self, X, Y):
  29.         self.__x = X
  30.         self.__y = Y
  31.         try:
  32.             if self.__x == 0 and self.__y == 0:
  33.                 raise NullValInitExcption()
  34.         except NullValInitExcption as e:
  35.             print(e)
  36.  
  37.     def v_get(self):
  38.         return [self.__x, self.__y]
  39.    
  40.    
  41. V = Vector(0., 1)
  42. V.v_set(float(input()), float(input()))
  43. T = Vector(2., 2.)
  44. print(V<T)
  45. V.v_set(0., 0.)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement