#!/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)