# Conflicts:
#	labs02/test_task.py
This commit is contained in:
s45165 2017-12-16 09:13:23 +01:00
parent e31fe96cbf
commit 1f09589b05

View File

@ -1,3 +1,68 @@
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
#Stwórz klasę ``Point``, która będzie reprezentować punkt w przestrzeni wielowymiarowej:
#* Konstruktor ma przyjąc tylko 1 parametr: listę współrzednych. Wykorzystaj funkcję z pierwszego zadania,
#żeby sprawdzić, czy lista zawiera wyłącznie liczby.
#* Napisz metodę add, która dida dwa punkty po współrzędnych i zwróci obiekt typu ``Punkt``.
#Zaimplementuj własny wyjątek ``DimensionError``, który zostaje wyrzucony, jeżeli dodawany punkt ma inny wymiar.
#* Napisz metodę ``to\_string``, która zwróci łancuch znakowy, który w czytelny sposób przedstawi punkt.
#* Napisz metodę __len__, która zwróci liczbę współrzędnych punktu. Zobacz, czy możesz teraz wywołać funkcję len na obiekcie typy punkt.
#* Napisz metodę __str__, która bedzie działać dokładnie tak samo jak metoda ``to_string``.
#Wyświetl obiekt typy Point k# orzystając z funkcji print.
class DimensionError(Exception):
pass
class Point:
def __init__(self, coordinates):
self.coordinates = coordinates
def is_numeric(coordinates):
for coordinate in coordinates:
if isinstance(coordinate, (float, int, complex)) == True:
pass
else:
return "{} is a not number".format(coordinate)
def number_of_coordinates(self):
return len(self.coordinates)
def add(self, point):
# check if this instance of class Point and the instance that was passed(parameter) has the same number of coordinates
if self.number_of_coordinates() == point.number_of_coordinates():
new_coordinates = []
for pos, coordinate in enumerate(self.coordinates):
new_coordinates.append(coordinate + point.coordinates[pos])
return Point(new_coordinates)
else:
raise DimensionError("Two points do not have the same number of dimensions")
def __str__(self):
string = ""
for pos, coordinate in enumerate(self.coordinates):
if len(self.coordinates) - 1 != pos:
string = string + str(coordinate) + ", "
else:
string = string + str(coordinate)
return "({})".format(string)
def __len__(self):
return len(self.coordinates)
coord = [1, 2, 4, 5, 6, 7]
p1 = Point(coord)
print(p1)