1
0
forked from tdwojak/Python2017

[homework lab3, lab4] ready for review

This commit is contained in:
s45155 2017-12-31 16:40:15 +01:00
parent affdbe0687
commit ff3181b92e

View File

@ -1,7 +1,56 @@
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
#Zaimplementuj własny wyjątek ``DimensionError``, który zostaje wyrzucony, jeżeli dodawany punkt ma inny wymiar.
class DimensionError(Exception):
pass
#Stwórz klasę ``Point``, która będzie reprezentować punkt w przestrzeni wielowymiarowej:
class Point:
# * Konstruktor ma przyjąc tylko 1 parametr: listę współrzednych.
def __init__(self, vertexes):
self.vertexes = vertexes
#sprawdź, czy lista zawiera wyłącznie liczby.
def is_numeric(vertexes):
if isinstance(vertexes,(float,int))==True:
pass
else:
print("list does not contain only numbers")
#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.
def add(self, newpoint):
sum=[]
if len(newpoint)!=len(self.vertexes):
raise DimensionError("Dimensions does not match")
else:
for i in range(len(newpoint)):
sum.append(self.vertexes[i] + newpoint[i])
return Point(sum)
#Napisz metodę ``to\_string``, która zwróci łancuch znakowy, który w czytelny sposób przedstawi punkt.
def to_string(self):
return str(self.vertexes)
def __to_string__(self):
return self.to_string()
#Napisz metodę __len__, która zwróci liczbę współrzędnych punktu.
def how_many(self):
return len(self.vertexes)
def __len__(self):
return self.how_many()
#Zobacz, czy możesz teraz wywołać funkcję len na obiekcie typu punkt.
figures = [2,1,3,4,2,7]
my_point = Point(figures)
no_of_coordinates=len(my_point)
print("Number of coordinates: ")
print(no_of_coordinates)
#Wyświetl obiekt typy Point korzystając z funkcji print.
print("Coordinates as a string: ")
print(my_point.to_string())
B=[2,1,2,3,1]
my_sum=Point(B)
my_point.add(B)