diff --git a/labs04/task03.py b/labs04/task03.py index 88741a4..9a4e39f 100644 --- a/labs04/task03.py +++ b/labs04/task03.py @@ -1,3 +1,80 @@ #!/usr/bin/env python2 # -*- coding: utf-8 -*- +""" +**ć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 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 korzystając z funkcji print. +""" +class point: + + def __len__(w_punkt): + dl = len(w_punkt) + print("ilosc wymiarow:", dl) + return (dl) + + def __str__(point_number): + print("Wspolrzedne punktu",point_number) + + def check_wartosc(wsp_punkt): + ok = False + while not ok: + try: + test_wsp_punkt = float(wsp_punkt) + ok = True + return (test_wsp_punkt) + except ValueError: + print("Podałeś błędną wartosc", wsp_punkt) + break + + def is_numeric(e_lista): + if isinstance(float(e_lista), float) or isinstance(int(e_lista),int): + print(e_lista) + return("Is_numeric") + else: + print(e_lista) + return ("Is_not_numeric") + + def add_wsp(ilosc_wsp): + tab = [] + for i in range(ilosc_wsp): + wsp_punkt = input("Podaj wsp nr \n") + tab.append(point.check_wartosc(wsp_punkt)) + return (list(tab)) + + def add_punkt(): + ilosc_punkt = int(input("Podaj ilosc punktow: \n")) + ilosc_wsp = int(input("Podaj ilosc wsp: \n")) + lista_punkt = [] + for i in range(ilosc_punkt): + lista_punkt.append(point.add_wsp(ilosc_wsp)) + # print(lista_punkt) + # to_string(lista_punkt[i],i+1) + # __len__(lista_punkt[i]) + return (lista_punkt) + + def to_string(lista_punkt): + # print("Punkt nr:",punkt,"ma wymiary") + # print(lista_punkt) + print("\n Wspolrzedne") + k = 0 + for i in lista_punkt: + # print(i) + k = k + 1 + print("Wymiar nr:", k, "ma wartosc", i) + + + + + + +test = point.add_punkt() +for i in test: + print("\n Numer punktu",test.index(i)+1,"\n") + point.__str__(i) + point.to_string (i) + point.__len__(i)