1
0
forked from tdwojak/Python2017

zadanie domowe

This commit is contained in:
MrFrodo94 2017-12-15 20:41:08 +01:00
parent d92d5c3f6f
commit 0d6fb2847e
4 changed files with 93 additions and 0 deletions

8
labs03/task1.py Normal file
View File

@ -0,0 +1,8 @@
**cwiczenie 1**
Kazdy obiekt w Pythonie na wbudowana funkcje ``id()``, która zwraca liczbe, która jest unikatowa i stala dla obiektu. Pozwala ona w prosty sposób sprawdzic, który obiekt jest *mutable*a, który *immutable*: jezeli po wykonaniu operacji, zwracana liczba jest stala, to oznacza, ze obiekt jest *mutable*. Sprawdz zachowanie funkcji na obiektach typy:
* lista,
* napis (string),
* liczba zmiennoprzecinkowa.

15
labs03/task2.py Normal file
View File

@ -0,0 +1,15 @@
**cwiczenie 2**
Napisz generator, który bedzie zwracac ``n`` kolejnych liczb ciagu Fibonacciego (``F(0)=1, F(1)=1, FN=F(N-1) + F(N-2)``).
"""
def Fib(n):
for i in range(n):
if n==0:
return 1
elif n==1:
return 1
else:
return Fib(n-1)+Fib(n-2)
print Fib(10)

View File

@ -1,3 +1,12 @@
#!/usr/bin/env python2 #!/usr/bin/env python2
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
def is_numeric(n):
if isinstance(n,int):
return 'int'
elif isinstance(n,float):
return 'float'
elif isinstance(n,str):
return 'string'
else:
return 'unavailable'

View File

@ -1,3 +1,64 @@
#!/usr/bin/env python2 #!/usr/bin/env python2
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
'''
**cwiczenie 3 (zadanie domowe) **
Stwórz klase ``Point``, która bedzie reprezentowac punkt w przestrzeni wielowymiarowej:
* Konstruktor ma przyjac tylko 1 parametr: liste wspólrzednych. Wykorzystaj funkcje z pierwszego zadania, zeby sprawdzic, czy lista zawiera wylacznie liczby.
* Napisz metode add, która dida dwa punkty (dwa wektory) po wspólrzednych i zwróci obiekt typu ``Punkt``. Zaimplementuj wlasny wyjatek ``DimensionError``, który zostaje wyrzucony, jezeli dodawany punkt ma inny wymiar.
* Napisz metode ``to\_string``, która zwróci lancuch znakowy, który w czytelny sposób przedstawi punkt.
* Napisz metode __len__, która zwróci liczbe wspólrzednych punktu. Zobacz, czy mozesz teraz wywolac funkcje len na obiekcie typy punkt.
* Napisz metode __str__, która bedzie dzialac dokladnie tak samo jak metoda ``to_string``. Wyswietl obiekt typy Point korzystajac z funkcji print.
'''
class DimensionError(Exception):
def __init__(self):
super().__init__(self)
self.msg="Inny wymiar"
class Point():
def __init__(self,list):
if Point.is_numeric(list)!=len(list):
self.points=[]
self.isnumeric = False
else:
self.points=list
self.isnumeric=True
def __add__(self, other):
new = []
if self.isnumeric==False or other.isnumeric==False:
return "To nie sa liczby!"
elif len(self.points) != len(other.points):
return DimensionError()
else:
for i in range(len(self.points)):
new.append(self.points[i]+other.points[i])
return new
def __len__(self):
len=0
for element in self.points:
len+=1
return len
def to_string(self):
point_tuple = tuple(self.points)
return str(point_tuple)
def __str__(self):
return (self.to_string())
@staticmethod
def is_numeric(point):
value=0
for i in point:
if isinstance(i, int) or isinstance(i, float):
value+=1
return value