forked from tdwojak/Python2017
Merge branch 'master' of https://git.wmi.amu.edu.pl/tdwojak/Python2017
# Conflicts: # labs02/test_task.py
This commit is contained in:
parent
e31fe96cbf
commit
1f09589b05
@ -1,3 +1,68 @@
|
|||||||
#!/usr/bin/env python2
|
#!/usr/bin/env python2
|
||||||
# -*- coding: utf-8 -*-
|
# -*- 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)
|
Loading…
Reference in New Issue
Block a user