forked from tdwojak/Python2017
Zadanie domowe
This commit is contained in:
parent
28b4b0a883
commit
34e2173b36
@ -1,3 +1,59 @@
|
||||
#!/usr/bin/env python2
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
class DimensionError(Exception):
|
||||
"""Klasa odpowiadajaca za wyjatek współrzędnych <>3"""
|
||||
def __init__(self, text):
|
||||
self.text = text
|
||||
def __str__(self):
|
||||
return self.text
|
||||
|
||||
class Point:
|
||||
"""Klasa reprezentująca punkt w 3D"""
|
||||
def __is_numeric(self,n):
|
||||
for i in n:
|
||||
if not (isinstance(i, int) or isinstance(i,float)):
|
||||
return False
|
||||
return True and len(n) > 0
|
||||
|
||||
def __init__(self, xyz):
|
||||
"""Konstruktor klasy Point, argument xyz - lista puntkwo w 3D. Warunkiem sa 3 wspolrzedne"""
|
||||
if not self.__is_numeric(xyz):
|
||||
raise DimensionError("Nieprawidlowe wspolrzedne!")
|
||||
if len(xyz) != 3:
|
||||
raise DimensionError("Nieprawidlowa liczba wspolrzednych (<> 3)")
|
||||
self.x = xyz[0]
|
||||
self.y = xyz[1]
|
||||
self.z = xyz[2]
|
||||
|
||||
def to_string(self):
|
||||
"""Wypisuje wektor współrzędnych punktu w 3D jako string"""
|
||||
return '[' + ','.join([str(self.x), str(self.y), str(self.z)]) + ']'
|
||||
|
||||
def add(oPoint1, oPoint2):
|
||||
"""Metoda statyczna klasy Point. Zwraca sumę współrzędnych danych 2 punktów w 3D
|
||||
|
||||
arg1 - obiekt klasy Punkt
|
||||
arg2 - obiekt klasy Punkt
|
||||
"""
|
||||
l1 = [oPoint1.x, oPoint1.y, oPoint1.z]
|
||||
l2 = [oPoint2.x, oPoint2.y, oPoint2.z]
|
||||
nl = [c1+c2 for c1, c2 in zip(l1, l2)]
|
||||
return Point(nl)
|
||||
|
||||
def __len__(self):
|
||||
"""Zwraca liczbe wspolrzednych"""
|
||||
return 3
|
||||
|
||||
def __str__(self):
|
||||
"""Funkcja string dla klasy Point, wypisuje wspolrzedne punktu jako string"""
|
||||
return self.to_string()
|
||||
|
||||
if __name__ == "__main__":
|
||||
pkt1 = Point([4, 8, 12])
|
||||
print('pkt1 =', pkt1)
|
||||
pkt2 = Point([-1, 0, 3])
|
||||
print('pkt2 =', pkt2)
|
||||
pkt3 = Point.add(pkt1, pkt2)
|
||||
print('pkt3 = pkt1 (+) pkt2 = ', pkt3)
|
||||
|
Loading…
Reference in New Issue
Block a user