forked from tdwojak/Python2017
59 lines
2.2 KiB
Python
59 lines
2.2 KiB
Python
#ćwiczenie 3 (zadanie domowe) ** 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 doda 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 korzystając z funkcji print.
|
|
|
|
|
|
#funkcja z pierwszego zadania, żeby sprawdzić, czy lista zawiera wyłącznie liczby
|
|
def is_numeric(list):
|
|
for i in list:
|
|
if (isinstance(i, (int, float)) == True):
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
# wyjątek DimensionError, który zostaje wyrzucony, jeżeli dodawany punkt ma inny wymiar
|
|
class DimensionError(Exception):
|
|
def __init__(self, text):
|
|
self.text = text
|
|
|
|
# klasa
|
|
class Point:
|
|
def __init__(self, coordinates):
|
|
if len(coordinates) != 3:
|
|
raise DimensionError('Wrong coordinates')
|
|
else:
|
|
self.coordinates = coordinates
|
|
|
|
# funkcja add, która doda dwa punkty do współrzędnych i zwróci obiekt typu Punkt
|
|
def add(c1, c2):
|
|
coordinates = []
|
|
if len(c1) != len(c2):
|
|
for i in range(0, len(c1)):
|
|
coordinates.append(c1[i]+c2[i])
|
|
return coordinates
|
|
|
|
|
|
# funkcja to_string, która zwróci łancuch znakowy,
|
|
def to_string(self):
|
|
return '(' + ', '.join(map(str, self.coordinates)) + ')'
|
|
|
|
|
|
# funkcja str, która bedzie działać dokładnie tak samo jak metoda to_string
|
|
def __str__(self):
|
|
return self.to_string()
|
|
|
|
|
|
# metoda len, która zwróci liczbę współrzędnych punktu
|
|
def __len__(self):
|
|
return len(self.coordinates)
|
|
|
|
|
|
point = Point([1,5,6])
|
|
print(point.coordinates)
|
|
|
|
|