1
0
forked from tdwojak/Python2017
Python2017/labs04/task03.py
2018-01-03 22:55:16 +01:00

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)