forked from tdwojak/Python2017
zadanie domowe
This commit is contained in:
parent
d92d5c3f6f
commit
0d6fb2847e
8
labs03/task1.py
Normal file
8
labs03/task1.py
Normal 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
15
labs03/task2.py
Normal 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)
|
@ -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'
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user