class vector: def __init__(self, e): self._element = e self._dimension = len(e) res = 0 for i in range(self._dimension): res += self._element[i]**2 self._length = res def __add__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError res = vector([0 for _ in self._dimension]) for i in range(self._dimension): res._element[i] = self._element[i] + other._element[i] return res def __sub__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError res = vector([0 for _ in self._dimension]) for i in range(self._dimension): res._element[i] = self._element[i] - other._element[i] return res def __mul__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError res = 0 for i in range(self._dimension): res += self._element[i] * other._element[i] return res def __iadd__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError for i in range(self._dimension): self._element[i] += other._element[i] def __isub__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError for i in range(self._dimension): self._element[i] -= other._element[i] def __imul__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError res = 0 for i in range(self._dimension): res += self._element[i] * other._element[i] return res def __pos__(self): return self def __neg__(self): for i in range(self._dimension): self._element[i] *= -1 def __lt__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError if self._length < other._length: return True else: return False def __le__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError if self._length <= other._length: return True else: return False def __ge__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError if self._length >= other._length: return True else: return False def __gt__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError if self._length > other._length: return True else: return False def __eq__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError for i in range(self._dimension): if self._element[i] != other._element[i]: return False return True def __ne__(self, other): if not isinstance(other, vector): raise ValueError if self._dimension != other._dimension: raise ValueError for i in range(self._dimension): if self._element[i] != other._element[i]: return True return False def __repr__(self): for i in range(self._dimension): print(self._element[i], end = ' ') print() def __contains__(self, item): pass def __abs__(self): pass def __truediv__(self, other): pass def __floordiv__(self, other): pass def __mod__(self, other): pass def __pow__(self, other): pass def __or__(self, value): pass def __and__(self, other): pass def __xor__(self, other): pass
Note.ms
/test