forked from tdwojak/Python2017
zadania z zajec 02-03.12.2017
This commit is contained in:
parent
b220d146da
commit
963a52dfc9
@ -232,13 +232,13 @@
|
|||||||
{
|
{
|
||||||
"ename": "TypeError",
|
"ename": "TypeError",
|
||||||
"evalue": "unhashable type: 'list'",
|
"evalue": "unhashable type: 'list'",
|
||||||
"output_type": "error",
|
|
||||||
"traceback": [
|
"traceback": [
|
||||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||||
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
|
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
|
||||||
"\u001b[0;32m<ipython-input-25-2bd2fa17fbf5>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
"\u001b[0;32m<ipython-input-25-2bd2fa17fbf5>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
||||||
"\u001b[0;31mTypeError\u001b[0m: unhashable type: 'list'"
|
"\u001b[0;31mTypeError\u001b[0m: unhashable type: 'list'"
|
||||||
]
|
],
|
||||||
|
"output_type": "error"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
@ -398,13 +398,13 @@
|
|||||||
{
|
{
|
||||||
"ename": "ValueError",
|
"ename": "ValueError",
|
||||||
"evalue": "I/O operation on closed file.",
|
"evalue": "I/O operation on closed file.",
|
||||||
"output_type": "error",
|
|
||||||
"traceback": [
|
"traceback": [
|
||||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||||
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
|
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
|
||||||
"\u001b[0;32m<ipython-input-47-f06513c1bbec>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mlinia\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mplik\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreadlines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinia\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mplik\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
"\u001b[0;32m<ipython-input-47-f06513c1bbec>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mlinia\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mplik\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreadlines\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinia\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mplik\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
||||||
"\u001b[0;31mValueError\u001b[0m: I/O operation on closed file."
|
"\u001b[0;31mValueError\u001b[0m: I/O operation on closed file."
|
||||||
]
|
],
|
||||||
|
"output_type": "error"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
|
16
labs03/task04.py
Normal file
16
labs03/task04.py
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
from weather import Weather
|
||||||
|
|
||||||
|
weather = Weather()
|
||||||
|
|
||||||
|
lookup = weather.lookup_by_location("Poznan")
|
||||||
|
astronomy = lookup.astronomy()
|
||||||
|
atmosphere = lookup.atmosphere()
|
||||||
|
condition = lookup.condition()
|
||||||
|
units = lookup.units()
|
||||||
|
wind = lookup.wind()
|
||||||
|
|
||||||
|
print(astronomy)
|
||||||
|
print(atmosphere)
|
||||||
|
print(condition.text())
|
||||||
|
print(units)
|
||||||
|
print(wind)
|
20
labs03/task05.py
Normal file
20
labs03/task05.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
from glob import glob
|
||||||
|
|
||||||
|
iteracje = 0
|
||||||
|
|
||||||
|
for plik in glob('scores/model.iter*.npz.bleu'):
|
||||||
|
with open(plik,'r') as otwarty_plik:
|
||||||
|
fl = otwarty_plik.readline()
|
||||||
|
current_bleu = float(fl[fl.find("=")+1:fl.find(",")])
|
||||||
|
|
||||||
|
if iteracje == 0:
|
||||||
|
max_bleu = current_bleu
|
||||||
|
max_bleu_file = plik
|
||||||
|
else:
|
||||||
|
if current_bleu > max_bleu:
|
||||||
|
max_bleu = current_bleu
|
||||||
|
max_bleu_file = plik
|
||||||
|
iteracje += 1
|
||||||
|
otwarty_plik.close()
|
||||||
|
|
||||||
|
print(max_bleu_file)
|
@ -309,13 +309,13 @@
|
|||||||
{
|
{
|
||||||
"ename": "AttributeError",
|
"ename": "AttributeError",
|
||||||
"evalue": "'Parser' object has no attribute '__parse'",
|
"evalue": "'Parser' object has no attribute '__parse'",
|
||||||
"output_type": "error",
|
|
||||||
"traceback": [
|
"traceback": [
|
||||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||||
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
|
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
|
||||||
"\u001b[0;32m<ipython-input-6-80ee186598d3>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mparser\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mParser\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__parse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
"\u001b[0;32m<ipython-input-6-80ee186598d3>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mparser\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mParser\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__parse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
||||||
"\u001b[0;31mAttributeError\u001b[0m: 'Parser' object has no attribute '__parse'"
|
"\u001b[0;31mAttributeError\u001b[0m: 'Parser' object has no attribute '__parse'"
|
||||||
]
|
],
|
||||||
|
"output_type": "error"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
@ -465,13 +465,13 @@
|
|||||||
{
|
{
|
||||||
"ename": "FileNotFoundError",
|
"ename": "FileNotFoundError",
|
||||||
"evalue": "[Errno 2] No such file or directory: 'nieistniejący_plik.txt'",
|
"evalue": "[Errno 2] No such file or directory: 'nieistniejący_plik.txt'",
|
||||||
"output_type": "error",
|
|
||||||
"traceback": [
|
"traceback": [
|
||||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||||
"\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
|
"\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
|
||||||
"\u001b[0;32m<ipython-input-20-41928d542bef>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"nieistniejący_plik.txt\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mplik\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mplik\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
"\u001b[0;32m<ipython-input-20-41928d542bef>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"nieistniejący_plik.txt\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mplik\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mplik\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||||
"\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'nieistniejący_plik.txt'"
|
"\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'nieistniejący_plik.txt'"
|
||||||
]
|
],
|
||||||
|
"output_type": "error"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
@ -614,13 +614,13 @@
|
|||||||
{
|
{
|
||||||
"ename": "MyError",
|
"ename": "MyError",
|
||||||
"evalue": "Coś poszło nie tak!",
|
"evalue": "Coś poszło nie tak!",
|
||||||
"output_type": "error",
|
|
||||||
"traceback": [
|
"traceback": [
|
||||||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||||||
"\u001b[0;31mMyError\u001b[0m Traceback (most recent call last)",
|
"\u001b[0;31mMyError\u001b[0m Traceback (most recent call last)",
|
||||||
"\u001b[0;32m<ipython-input-36-4fb306b42ebc>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mMyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Coś poszło nie tak!\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
"\u001b[0;32m<ipython-input-36-4fb306b42ebc>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mMyError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Coś poszło nie tak!\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
||||||
"\u001b[0;31mMyError\u001b[0m: Coś poszło nie tak!"
|
"\u001b[0;31mMyError\u001b[0m: Coś poszło nie tak!"
|
||||||
]
|
],
|
||||||
|
"output_type": "error"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
|
@ -1,18 +1,26 @@
|
|||||||
**ćwiczenie 1**
|
**ćwiczenie 1**
|
||||||
Napisz funckję ``is_numeric``, która sprawdzi, czy każdy element z przekazanej listy jest typu int lub float. Wykorzystaj funcję ``isinstance()`` (https://docs.python.org/2/library/functions.html#isinstance).
|
Napisz funckję ``is_numeric``, która sprawdzi, czy każdy element z przekazanej listy jest typu int lub float.
|
||||||
|
Wykorzystaj funcję ``isinstance()`` (https://docs.python.org/2/library/functions.html#isinstance).
|
||||||
|
|
||||||
**ćwiczenie 2**
|
**ćwiczenie 2**
|
||||||
Napisz prostą hierarchię klas:
|
Napisz prostą hierarchię klas:
|
||||||
* Klasa bazowa ``Employee``, która będzie zawierać informacje o imieniu i nazwisku pracownika. Ponadto każdy pracownik otrzyma numer ``id``, który będzie unikatowy. Wykorzystaj do tego atrybut statyczny. Napisz metodę ``get_id``, która zwraca identyfikator pracownika.
|
* Klasa bazowa ``Employee``, która będzie zawierać informacje o imieniu i nazwisku pracownika.
|
||||||
* Klasy pochodna: ``Recruiter``, która ma dodatkową mtodę ``recruit``, która jako parament przyjmuje obiekt ``Employee`` i zapisuje jego ``id`` w liście ``self.recruited``.
|
Ponadto każdy pracownik otrzyma numer ``id``, który będzie unikatowy. Wykorzystaj do tego atrybut statyczny.
|
||||||
* Klasa pochodna ``Programmer``. Klasa ``Programmer`` ma przyjąć w konstruktorze podstawowe informacje (imię i nazwisko) oraz obiekt rekturera. Ponadto stwórz atrybut ``recruiter``, który będzie przechowywać ``id`` rekrutera.
|
Napisz metodę ``get_id``, która zwraca identyfikator pracownika.
|
||||||
|
* Klasy pochodna: ``Recruiter``, która ma dodatkową mtodę ``recruit``, która jako parament przyjmuje obiekt ``Employee``
|
||||||
|
i zapisuje jego ``id`` w liście ``self.recruited``.
|
||||||
|
* Klasa pochodna ``Programmer``. Klasa ``Programmer`` ma przyjąć w konstruktorze podstawowe informacje (imię i nazwisko)
|
||||||
|
oraz obiekt rekturera. Ponadto stwórz atrybut ``recruiter``, który będzie przechowywać ``id`` rekrutera.
|
||||||
|
|
||||||
**ćwiczenie 3 (zadanie domowe) **
|
**ćwiczenie 3 (zadanie domowe) **
|
||||||
Stwórz klasę ``Point``, która będzie reprezentować punkt w przestrzeni wielowymiarowej:
|
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.
|
* Konstruktor ma przyjąc tylko 1 parametr: listę współrzednych. Wykorzystaj funkcję z pierwszego zadania,
|
||||||
* 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.
|
ż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ę ``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ę __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.
|
* 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.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
#!/usr/bin/env python2
|
#!/usr/bin/env python2
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
def is_numeric(a):
|
||||||
|
for i in a:
|
||||||
|
if not(isinstance(i,int)) and not(isinstance(i,float)):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
print(is_numeric([10,20,30]))
|
||||||
|
print(is_numeric([10.9,20.4,30]))
|
||||||
|
print(is_numeric(['abc','def',10]))
|
@ -1,3 +1,40 @@
|
|||||||
#!/usr/bin/env python2
|
#!/usr/bin/env python2
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
class Employee:
|
||||||
|
_ID=1
|
||||||
|
|
||||||
|
def __init__(self, imie, nazwisko):
|
||||||
|
self.imie = imie
|
||||||
|
self.nazwisko = nazwisko
|
||||||
|
self.id = self._ID
|
||||||
|
self.__class__._ID += 1
|
||||||
|
|
||||||
|
def get_id(self):
|
||||||
|
return self.id
|
||||||
|
|
||||||
|
class Recruiter(Employee):
|
||||||
|
recruited = []
|
||||||
|
def recruit(self, Employee):
|
||||||
|
self.recruited.append(Employee.get_id())
|
||||||
|
|
||||||
|
class Programmer(Employee):
|
||||||
|
def __init__(self, imie, nazwisko, Recruiter):
|
||||||
|
Employee._ID += 1
|
||||||
|
super().__init__(imie, nazwisko)
|
||||||
|
self.recruiter = Recruiter.id
|
||||||
|
|
||||||
|
pracownik = Employee("Jan","Nowak")
|
||||||
|
pracownik2 = Employee("Adam","Kowalski")
|
||||||
|
pracownik3 = Employee("Piotr","Adolfowski")
|
||||||
|
|
||||||
|
print(pracownik.get_id(),pracownik2.get_id(),pracownik3.get_id())
|
||||||
|
|
||||||
|
rekruter = Recruiter("Andrzej","Mściszewski")
|
||||||
|
rekruter.recruit(pracownik)
|
||||||
|
print(rekruter.id, rekruter.imie, rekruter.nazwisko, rekruter.recruited)
|
||||||
|
|
||||||
|
programista = Programmer("Bill", "Gates", rekruter)
|
||||||
|
|
||||||
|
print(programista.id, programista.imie, programista.nazwisko, programista.recruiter)
|
||||||
|
|
||||||
|
@ -1,3 +1,40 @@
|
|||||||
#!/usr/bin/env python2
|
#!/usr/bin/env python2
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import operator
|
||||||
|
|
||||||
|
def is_numeric(a):
|
||||||
|
for i in a:
|
||||||
|
if not(isinstance(i,int)) and not(isinstance(i,float)):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def add(punkt1, punkt2):
|
||||||
|
if len(punkt1.wspolrzedne) == len(punkt2.wspolrzedne):
|
||||||
|
return Point(list(map(operator.add,punkt1.wspolrzedne,punkt2.wspolrzedne)))
|
||||||
|
else:
|
||||||
|
raise Exception("Dimension error")
|
||||||
|
|
||||||
|
class Point:
|
||||||
|
wspolrzedne = []
|
||||||
|
def __init__(self,wspolrzedne):
|
||||||
|
if is_numeric(wspolrzedne):
|
||||||
|
self.wspolrzedne = wspolrzedne
|
||||||
|
def to_string(self):
|
||||||
|
return "Współrzędne punktu to: " + str(self.wspolrzedne)
|
||||||
|
def __len__(self):
|
||||||
|
return len(self.wspolrzedne)
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_string()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
punkt = Point([0,1,2])
|
||||||
|
punkt2 = Point([10,15,20])
|
||||||
|
punkt3 = add(punkt,punkt2)
|
||||||
|
#punkt4 = add(punkt,Point([10,20]))
|
||||||
|
|
||||||
|
print(punkt.wspolrzedne, punkt2.wspolrzedne, punkt3.wspolrzedne)#, punkt4.wspolrzedne)
|
||||||
|
print(punkt.to_string())
|
||||||
|
print(punkt3)
|
Loading…
Reference in New Issue
Block a user