Files
linearalgebrarefresher/vector.py
2020-11-04 09:24:11 +01:00

58 lines
1.4 KiB
Python

# -*- coding: iso-8859-15 -*
class Vector(object):
def __init__(self, coordinates):
try:
if not coordinates:
raise ValueError
self.coordinates = tuple(coordinates)
self.dimension = len(coordinates)
except ValueError:
raise ValueError('Die Koordinaten dürfen nicht leer sein')
except TypeError:
raise TypeError('Die Koordinaten müssen iterierbar sein')
def __str__(self):
return 'Vector: {}'.format(self.coordinates)
def __eq__(self, v):
return self.coordinates == v.coordinates
#def plus(self,v):
# new_coordinates = [x+y for x,y in zip(self.coordinates, v.coordinates)]
# return Vector(new_coordinates)
def plus(self,v):
new_coordinates =[]
n = len(self.coordinates)
for i in range(n):
new_coordinates.append(self.coordinates[i] + v.coordinates[i])
def minus(self,v):
new_coordinates = [x-y for x,y in zip(self.coordinates, v.coordinates)]
return Vector(new_coordinates)
def times_scalar(self, c):
new_coordinates = [c*x for x in self.coordinates]
return Vector(new_coordinates)
# Tests
vektor_1 = Vector([1,2,3])
print vektor_1
vektor_2 = Vector([1,2,3])
vektor_3 = Vector([-1,2,3])
print vektor_1 == vektor_2
print vektor_2 == vektor_3
print vektor_1.plus(vektor_2)
print vektor_2.minus(vektor_3)
print vektor_3.times_scalar(3)