From 19c4e498ca0fc4e4f4b2373fb795babbe8f54ab2 Mon Sep 17 00:00:00 2001 From: Tomasz Dwojak Date: Sun, 19 Nov 2017 14:52:25 +0100 Subject: [PATCH 01/10] update test task --- .idea/vcs.xml | 6 ++++++ labs02/test_task.py | 5 ++--- 2 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 .idea/vcs.xml diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/labs02/test_task.py b/labs02/test_task.py index 5879768..6875a37 100755 --- a/labs02/test_task.py +++ b/labs02/test_task.py @@ -6,7 +6,7 @@ def suma(a, b): """ Napisz funkcję, która zwraca sumę elementów. """ - pass + return a + b def tests(f): inputs = [(2, 3), (0, 0), (1, 1)] @@ -18,5 +18,4 @@ def tests(f): break return "TESTS PASSED" -if __name__ == "__main__": - print(tests(suma)) +print(tests(suma)) From b62e43effe8200d86782a335ef06533345c2620f Mon Sep 17 00:00:00 2001 From: Tomasz Dwojak Date: Sun, 19 Nov 2017 15:38:59 +0100 Subject: [PATCH 02/10] Fix tassk no. 10 --- labs02/task10.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/labs02/task10.py b/labs02/task10.py index f380f0a..58d40d2 100644 --- a/labs02/task10.py +++ b/labs02/task10.py @@ -13,7 +13,7 @@ def pokemon_speak(text): def tests(f): - inputs = [['pokemon'], ['do not want'], 'POKEMON'] + inputs = [['pokemon'], ['do not want'], ['POKEMON']] outputs = ['PoKeMoN', 'Do nOt wAnT', 'POKEMON'] for input, output in zip(inputs, outputs): From d311b94e01a47bc36622c6996ee990cad87e0483 Mon Sep 17 00:00:00 2001 From: Tomasz Dwojak Date: Sat, 2 Dec 2017 12:10:31 +0100 Subject: [PATCH 03/10] Add labs3 --- labs03/Podstawy 2.ipynb | 522 ++++++++++++++++++++++++++++++++++++++++ labs03/README.md | 36 +++ 2 files changed, 558 insertions(+) create mode 100644 labs03/Podstawy 2.ipynb create mode 100644 labs03/README.md diff --git a/labs03/Podstawy 2.ipynb b/labs03/Podstawy 2.ipynb new file mode 100644 index 0000000..7e22b71 --- /dev/null +++ b/labs03/Podstawy 2.ipynb @@ -0,0 +1,522 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Python: podstaw ciąg dalszy\n", + "\n", + "## Tomasz Dwojak\n", + "\n", + "### 2 grudnia 2017" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Co już znamy?\n", + " * podstawowe typy danych i operacje na nich\n", + " * Instrukcje sterujące: ``if``, ``for``\n", + " * pisanie funkcji\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "## Co na dziś?\n", + "\n", + " * ``tuple`` i ``set``,\n", + " * operacje na plikach,\n", + " * coś więcej o funkcjach\n", + " * korzystanie z bibliotek\n", + " * przegląd najważniejszych bibliotek" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "123\n", + "[1, 2, 3, 1, 2, 3]\n" + ] + } + ], + "source": [ + "def dwojak(x): x *= 2\n", + " \n", + "l = [1, 2, 3]\n", + "s = \"123\"\n", + "\n", + "dwojak(l)\n", + "dwojak(s)\n", + "\n", + "print(l)\n", + "print(s)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Mutable i Immutable\n", + "\n", + "### Mutable\n", + " * listy,\n", + " * słowniki,\n", + " * sety,\n", + " * własnoręcznie zdefiniowane klasy.\n", + " \n", + "### Immutable\n", + " * liczby: inty i floaty,\n", + " * napisy,\n", + " * tuple." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Nieoczywistości" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 3, 1, 2, 3]\n", + "[1, 2, 3]\n" + ] + } + ], + "source": [ + "def dwojak1(x): x *= 2\n", + "def dwojak2(x): x = x * 2\n", + "\n", + "l = [1,2, 3]\n", + "dwojak1(l)\n", + "print(l)\n", + "\n", + "l = [1,2, 3]\n", + "dwojak2(l)\n", + "print(l)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 3, 4]\n" + ] + } + ], + "source": [ + "l = [1, 2, 3]\n", + "e = l\n", + "e.append(4)\n", + "print(l)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1], [1], [1]]\n" + ] + } + ], + "source": [ + "e = []\n", + "f = [e for i in range(3)]\n", + "f[0].append(1)\n", + "print(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## To może ``tuple``?\n", + " * stały rozmiar,\n", + " * immutable,\n", + " * mogą być kluczami w słownikach" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1, 'napis', None)\n", + "3\n" + ] + } + ], + "source": [ + "t = (1, \"napis\", None)\n", + "elem = t[0]\n", + "print(t)\n", + "print(len(t))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Funkcje cz. 2" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15\n", + "a == 1\n", + "b == (3, 4)\n" + ] + }, + { + "data": { + "text/plain": [ + "'b'" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def suma(*args):\n", + " return sum(args)\n", + "print(suma(1,2,3,4,5))\n", + "\n", + "def greet_me(**kwargs):\n", + " if kwargs is not None:\n", + " for key, value in kwargs.items():\n", + " print(\"%s == %s\" %(key,value))\n", + "greet_me(a=1, b=(3,4))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Generatory" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a\n", + "b\n", + "c\n", + "d\n" + ] + } + ], + "source": [ + "def alfaRange(x, y):\n", + " for i in range(ord(x), ord(y)):\n", + " yield chr(i)\n", + "\n", + "for c in alfaRange('a', 'e'):\n", + " print(c)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Operacje na plikach" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "W Paryżu najlepsze kasztany są na placu Pigalle\n", + "Zuzanna lubi je tylko jesienią.\n", + "\n" + ] + } + ], + "source": [ + "plik = open(\"haslo.txt\", 'r')\n", + "for linia in plik.readlines():\n", + " print(linia.strip())\n", + "print(plik.read())\n", + "plik.close()" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "W Paryżu najlepsze kasztany są na placu Pigalle\n", + "\n", + "Zuzanna lubi je tylko jesienią.\n", + "\n" + ] + } + ], + "source": [ + "with open(\"haslo.txt\", 'r') as plik:\n", + " for linia in plik.readlines():\n", + " print(linia)\n", + "# print(plik.read())" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "with open(\"haslo2.txt\", 'w') as plik:\n", + " for word in ('corect', 'horse', 'battery', 'staple'):\n", + " plik.write(word)\n", + " plik.write('\\n')\n", + "with open(\"haslo2.txt\", 'w+') as plik:\n", + " plik.writelines([' '.join(('corect', 'horse', 'battery', 'staple'))])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Korzystanie z modułów" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Importowanie" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "posix\n", + "Nazwa uzytkownika: tomaszd\n" + ] + } + ], + "source": [ + "import os\n", + "print(os.name)\n", + "\n", + "from os import getenv\n", + "print('Nazwa uzytkownika: {}'.format(getenv(\"USER\")))" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Counter({'o': 4, 'n': 4, 'a': 4, 'k': 3, 't': 3, 'y': 2, 'i': 2, 'c': 2, 'z': 2, 's': 1, 'p': 1, 'l': 1, 'ń': 1, 'w': 1, 'e': 1})\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[ 1., 3., 4., 5.]], dtype=float32)" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from collections import *\n", + "print(Counter(\"konstantynopolitańczykowianeczka\"))\n", + "\n", + "import numpy as np\n", + "np.array([[1, 3, 4, 5]], dtype='float32')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/labs03/README.md b/labs03/README.md new file mode 100644 index 0000000..85feb92 --- /dev/null +++ b/labs03/README.md @@ -0,0 +1,36 @@ +# Laboratoria 3 + +## Zadania + +**ćwiczenie 0** +Sklonuj repozytorium ``https://github.com/realpython/python-scripts``, które różne, przydatne skrypty. Przejrzyj je i zobacz na ile jesteś w stanie zrozumieć co i jak robią. Uruchom kilka z nich, np. ``27_send_sms.py``. + +**ćwiczenie 1** +Każdy obiekt w Pythonie na wbudowaną funkcję ``id()``, która zwraca liczbę, która jest unikatowa i stała dla obiektu. Pozwala ona w prosty sposób sprawdzić, który obiekt jest *mutable*a, który *immutable*: jeżeli po wykonaniu operacji, zwracana liczba jest stała, to oznacza, że obiekt jest *mutable*. Sprawdź zachowanie funkcji na obiektach typy: + * lista, + * napis (string), + * liczba zmiennoprzecinkowa. + +**ćwiczenie 2** +Napisz generator, który będzie zwracać ``n`` kolejnych liczb ciągu Fibonacciego (``F(0)=1, F(1)=1, FN=F(N-1) + F(N-2)``). + +**ćwiczenie 3** +Strona ``https://api.fixer.io/latest`` udostępnia kursy różnych walut w stosunku do euro. Napisz skrypt, który: + * pobierze zawartość JSONa. Wykorzystaj bibliotekę ``requests`` (http://docs.python-requests.org/en/master/). + * korzystając z biblioteki ``json`` przekształć go do obiketu typu JSON. + * Wyświetl wartość kursu EUR do PLN. + +**ćwiczenie 4** +Zainstaluj bibliotekę ``weather-api`` (https://pypi.python.org/pypi/weather-api). Korzystając z niej: + * Wypisz informacje o aktualnej pogodzie. + * Napisz funkcję, która zamieni stopnie ``F`` na ``C``. + * Korzystając z prognozy, znajdź dzień, w którym będzie najzimniej. Wypisz nazwę tygodnia (w języku polskim) i temperaturę w C. + +**ćwiczenie 5** +Katalog scores zawiera 64 pliki tekstowe, które posiadają informacje o wysokości miary ``BLEU`` na różnych etapach trenowania modelu. Nazwa każdego pliku na postać ``model.iterXXXXXXX.npz.bleu``, gdzie ``XXXXXXX``, to liczba iteracji.Zawartość każdego pliku jest podobna i ma następującą formę: *BLEU = YY.YY, 44.4/18.5/9.3/5.0 (BP=1.000, ratio=1.072, hyp_len=45976, ref_len=42903)*, gdzie ``YY.YY`` to wartość miary ``BLEU``. Znajdź plik, który zawiera najwyższą wartość miary ``BLEU``. + * Wykorzystaj bibliotekę ``glob`` (https://docs.python.org/2/library/glob.html) + * Wyświetl tylko pełną nazwe pliku (wraz z ścieżką). + + + + From 135d01c0d7ad3e09f6791ff43932fed3a12c4301 Mon Sep 17 00:00:00 2001 From: Tomasz Dwojak Date: Sat, 2 Dec 2017 12:10:44 +0100 Subject: [PATCH 04/10] Add scores --- labs03/scores/model.iter10000.npz.bleu | 1 + labs03/scores/model.iter100000.npz.bleu | 1 + labs03/scores/model.iter110000.npz.bleu | 1 + labs03/scores/model.iter120000.npz.bleu | 1 + labs03/scores/model.iter130000.npz.bleu | 1 + labs03/scores/model.iter140000.npz.bleu | 1 + labs03/scores/model.iter150000.npz.bleu | 1 + labs03/scores/model.iter160000.npz.bleu | 1 + labs03/scores/model.iter170000.npz.bleu | 1 + labs03/scores/model.iter180000.npz.bleu | 1 + labs03/scores/model.iter190000.npz.bleu | 1 + labs03/scores/model.iter20000.npz.bleu | 1 + labs03/scores/model.iter200000.npz.bleu | 1 + labs03/scores/model.iter210000.npz.bleu | 1 + labs03/scores/model.iter220000.npz.bleu | 1 + labs03/scores/model.iter230000.npz.bleu | 1 + labs03/scores/model.iter240000.npz.bleu | 1 + labs03/scores/model.iter250000.npz.bleu | 1 + labs03/scores/model.iter260000.npz.bleu | 1 + labs03/scores/model.iter270000.npz.bleu | 1 + labs03/scores/model.iter280000.npz.bleu | 1 + labs03/scores/model.iter290000.npz.bleu | 1 + labs03/scores/model.iter30000.npz.bleu | 1 + labs03/scores/model.iter300000.npz.bleu | 1 + labs03/scores/model.iter310000.npz.bleu | 1 + labs03/scores/model.iter320000.npz.bleu | 1 + labs03/scores/model.iter330000.npz.bleu | 1 + labs03/scores/model.iter340000.npz.bleu | 1 + labs03/scores/model.iter350000.npz.bleu | 1 + labs03/scores/model.iter360000.npz.bleu | 1 + labs03/scores/model.iter370000.npz.bleu | 1 + labs03/scores/model.iter380000.npz.bleu | 1 + labs03/scores/model.iter390000.npz.bleu | 1 + labs03/scores/model.iter40000.npz.bleu | 1 + labs03/scores/model.iter400000.npz.bleu | 1 + labs03/scores/model.iter410000.npz.bleu | 1 + labs03/scores/model.iter420000.npz.bleu | 1 + labs03/scores/model.iter430000.npz.bleu | 1 + labs03/scores/model.iter440000.npz.bleu | 1 + labs03/scores/model.iter450000.npz.bleu | 1 + labs03/scores/model.iter460000.npz.bleu | 1 + labs03/scores/model.iter470000.npz.bleu | 1 + labs03/scores/model.iter480000.npz.bleu | 1 + labs03/scores/model.iter490000.npz.bleu | 1 + labs03/scores/model.iter50000.npz.bleu | 1 + labs03/scores/model.iter500000.npz.bleu | 1 + labs03/scores/model.iter510000.npz.bleu | 1 + labs03/scores/model.iter520000.npz.bleu | 1 + labs03/scores/model.iter530000.npz.bleu | 1 + labs03/scores/model.iter540000.npz.bleu | 1 + labs03/scores/model.iter550000.npz.bleu | 1 + labs03/scores/model.iter560000.npz.bleu | 1 + labs03/scores/model.iter570000.npz.bleu | 1 + labs03/scores/model.iter580000.npz.bleu | 1 + labs03/scores/model.iter590000.npz.bleu | 1 + labs03/scores/model.iter60000.npz.bleu | 1 + labs03/scores/model.iter600000.npz.bleu | 1 + labs03/scores/model.iter610000.npz.bleu | 1 + labs03/scores/model.iter620000.npz.bleu | 1 + labs03/scores/model.iter630000.npz.bleu | 1 + labs03/scores/model.iter640000.npz.bleu | 1 + labs03/scores/model.iter70000.npz.bleu | 1 + labs03/scores/model.iter80000.npz.bleu | 1 + labs03/scores/model.iter90000.npz.bleu | 1 + 64 files changed, 64 insertions(+) create mode 100644 labs03/scores/model.iter10000.npz.bleu create mode 100644 labs03/scores/model.iter100000.npz.bleu create mode 100644 labs03/scores/model.iter110000.npz.bleu create mode 100644 labs03/scores/model.iter120000.npz.bleu create mode 100644 labs03/scores/model.iter130000.npz.bleu create mode 100644 labs03/scores/model.iter140000.npz.bleu create mode 100644 labs03/scores/model.iter150000.npz.bleu create mode 100644 labs03/scores/model.iter160000.npz.bleu create mode 100644 labs03/scores/model.iter170000.npz.bleu create mode 100644 labs03/scores/model.iter180000.npz.bleu create mode 100644 labs03/scores/model.iter190000.npz.bleu create mode 100644 labs03/scores/model.iter20000.npz.bleu create mode 100644 labs03/scores/model.iter200000.npz.bleu create mode 100644 labs03/scores/model.iter210000.npz.bleu create mode 100644 labs03/scores/model.iter220000.npz.bleu create mode 100644 labs03/scores/model.iter230000.npz.bleu create mode 100644 labs03/scores/model.iter240000.npz.bleu create mode 100644 labs03/scores/model.iter250000.npz.bleu create mode 100644 labs03/scores/model.iter260000.npz.bleu create mode 100644 labs03/scores/model.iter270000.npz.bleu create mode 100644 labs03/scores/model.iter280000.npz.bleu create mode 100644 labs03/scores/model.iter290000.npz.bleu create mode 100644 labs03/scores/model.iter30000.npz.bleu create mode 100644 labs03/scores/model.iter300000.npz.bleu create mode 100644 labs03/scores/model.iter310000.npz.bleu create mode 100644 labs03/scores/model.iter320000.npz.bleu create mode 100644 labs03/scores/model.iter330000.npz.bleu create mode 100644 labs03/scores/model.iter340000.npz.bleu create mode 100644 labs03/scores/model.iter350000.npz.bleu create mode 100644 labs03/scores/model.iter360000.npz.bleu create mode 100644 labs03/scores/model.iter370000.npz.bleu create mode 100644 labs03/scores/model.iter380000.npz.bleu create mode 100644 labs03/scores/model.iter390000.npz.bleu create mode 100644 labs03/scores/model.iter40000.npz.bleu create mode 100644 labs03/scores/model.iter400000.npz.bleu create mode 100644 labs03/scores/model.iter410000.npz.bleu create mode 100644 labs03/scores/model.iter420000.npz.bleu create mode 100644 labs03/scores/model.iter430000.npz.bleu create mode 100644 labs03/scores/model.iter440000.npz.bleu create mode 100644 labs03/scores/model.iter450000.npz.bleu create mode 100644 labs03/scores/model.iter460000.npz.bleu create mode 100644 labs03/scores/model.iter470000.npz.bleu create mode 100644 labs03/scores/model.iter480000.npz.bleu create mode 100644 labs03/scores/model.iter490000.npz.bleu create mode 100644 labs03/scores/model.iter50000.npz.bleu create mode 100644 labs03/scores/model.iter500000.npz.bleu create mode 100644 labs03/scores/model.iter510000.npz.bleu create mode 100644 labs03/scores/model.iter520000.npz.bleu create mode 100644 labs03/scores/model.iter530000.npz.bleu create mode 100644 labs03/scores/model.iter540000.npz.bleu create mode 100644 labs03/scores/model.iter550000.npz.bleu create mode 100644 labs03/scores/model.iter560000.npz.bleu create mode 100644 labs03/scores/model.iter570000.npz.bleu create mode 100644 labs03/scores/model.iter580000.npz.bleu create mode 100644 labs03/scores/model.iter590000.npz.bleu create mode 100644 labs03/scores/model.iter60000.npz.bleu create mode 100644 labs03/scores/model.iter600000.npz.bleu create mode 100644 labs03/scores/model.iter610000.npz.bleu create mode 100644 labs03/scores/model.iter620000.npz.bleu create mode 100644 labs03/scores/model.iter630000.npz.bleu create mode 100644 labs03/scores/model.iter640000.npz.bleu create mode 100644 labs03/scores/model.iter70000.npz.bleu create mode 100644 labs03/scores/model.iter80000.npz.bleu create mode 100644 labs03/scores/model.iter90000.npz.bleu diff --git a/labs03/scores/model.iter10000.npz.bleu b/labs03/scores/model.iter10000.npz.bleu new file mode 100644 index 0000000..8eba4ec --- /dev/null +++ b/labs03/scores/model.iter10000.npz.bleu @@ -0,0 +1 @@ +BLEU = 2.02, 17.1/3.6/1.0/0.3 (BP=1.000, ratio=1.872, hyp_len=80326, ref_len=42903) diff --git a/labs03/scores/model.iter100000.npz.bleu b/labs03/scores/model.iter100000.npz.bleu new file mode 100644 index 0000000..c8c380c --- /dev/null +++ b/labs03/scores/model.iter100000.npz.bleu @@ -0,0 +1 @@ +BLEU = 13.99, 44.4/18.5/9.3/5.0 (BP=1.000, ratio=1.072, hyp_len=45976, ref_len=42903) diff --git a/labs03/scores/model.iter110000.npz.bleu b/labs03/scores/model.iter110000.npz.bleu new file mode 100644 index 0000000..dcbf8a8 --- /dev/null +++ b/labs03/scores/model.iter110000.npz.bleu @@ -0,0 +1 @@ +BLEU = 14.35, 44.9/19.0/9.6/5.2 (BP=1.000, ratio=1.087, hyp_len=46657, ref_len=42903) diff --git a/labs03/scores/model.iter120000.npz.bleu b/labs03/scores/model.iter120000.npz.bleu new file mode 100644 index 0000000..c7607bb --- /dev/null +++ b/labs03/scores/model.iter120000.npz.bleu @@ -0,0 +1 @@ +BLEU = 15.75, 47.1/20.5/10.7/6.0 (BP=1.000, ratio=1.030, hyp_len=44211, ref_len=42903) diff --git a/labs03/scores/model.iter130000.npz.bleu b/labs03/scores/model.iter130000.npz.bleu new file mode 100644 index 0000000..6ef614e --- /dev/null +++ b/labs03/scores/model.iter130000.npz.bleu @@ -0,0 +1 @@ +BLEU = 15.96, 47.7/20.8/10.9/6.0 (BP=1.000, ratio=1.029, hyp_len=44160, ref_len=42903) diff --git a/labs03/scores/model.iter140000.npz.bleu b/labs03/scores/model.iter140000.npz.bleu new file mode 100644 index 0000000..55075dd --- /dev/null +++ b/labs03/scores/model.iter140000.npz.bleu @@ -0,0 +1 @@ +BLEU = 15.42, 46.8/20.3/10.5/5.7 (BP=1.000, ratio=1.043, hyp_len=44729, ref_len=42903) diff --git a/labs03/scores/model.iter150000.npz.bleu b/labs03/scores/model.iter150000.npz.bleu new file mode 100644 index 0000000..f48a590 --- /dev/null +++ b/labs03/scores/model.iter150000.npz.bleu @@ -0,0 +1 @@ +BLEU = 15.84, 47.3/20.7/10.8/5.9 (BP=1.000, ratio=1.034, hyp_len=44374, ref_len=42903) diff --git a/labs03/scores/model.iter160000.npz.bleu b/labs03/scores/model.iter160000.npz.bleu new file mode 100644 index 0000000..74cf4bd --- /dev/null +++ b/labs03/scores/model.iter160000.npz.bleu @@ -0,0 +1 @@ +BLEU = 15.99, 47.7/20.8/10.9/6.0 (BP=1.000, ratio=1.031, hyp_len=44233, ref_len=42903) diff --git a/labs03/scores/model.iter170000.npz.bleu b/labs03/scores/model.iter170000.npz.bleu new file mode 100644 index 0000000..4aa9072 --- /dev/null +++ b/labs03/scores/model.iter170000.npz.bleu @@ -0,0 +1 @@ +BLEU = 16.15, 47.9/21.0/11.0/6.1 (BP=1.000, ratio=1.027, hyp_len=44065, ref_len=42903) diff --git a/labs03/scores/model.iter180000.npz.bleu b/labs03/scores/model.iter180000.npz.bleu new file mode 100644 index 0000000..b4c3dfc --- /dev/null +++ b/labs03/scores/model.iter180000.npz.bleu @@ -0,0 +1 @@ +BLEU = 15.86, 47.1/20.8/10.8/6.0 (BP=1.000, ratio=1.053, hyp_len=45191, ref_len=42903) diff --git a/labs03/scores/model.iter190000.npz.bleu b/labs03/scores/model.iter190000.npz.bleu new file mode 100644 index 0000000..d4472dc --- /dev/null +++ b/labs03/scores/model.iter190000.npz.bleu @@ -0,0 +1 @@ +BLEU = 16.07, 47.7/21.0/11.0/6.0 (BP=1.000, ratio=1.044, hyp_len=44795, ref_len=42903) diff --git a/labs03/scores/model.iter20000.npz.bleu b/labs03/scores/model.iter20000.npz.bleu new file mode 100644 index 0000000..4bf5ed1 --- /dev/null +++ b/labs03/scores/model.iter20000.npz.bleu @@ -0,0 +1 @@ +BLEU = 5.87, 31.1/8.9/3.3/1.3 (BP=1.000, ratio=1.155, hyp_len=49533, ref_len=42903) diff --git a/labs03/scores/model.iter200000.npz.bleu b/labs03/scores/model.iter200000.npz.bleu new file mode 100644 index 0000000..b88ce22 --- /dev/null +++ b/labs03/scores/model.iter200000.npz.bleu @@ -0,0 +1 @@ +BLEU = 16.82, 48.9/21.7/11.5/6.6 (BP=0.998, ratio=0.998, hyp_len=42837, ref_len=42903) diff --git a/labs03/scores/model.iter210000.npz.bleu b/labs03/scores/model.iter210000.npz.bleu new file mode 100644 index 0000000..6c71702 --- /dev/null +++ b/labs03/scores/model.iter210000.npz.bleu @@ -0,0 +1 @@ +BLEU = 16.70, 48.7/21.7/11.5/6.4 (BP=1.000, ratio=1.017, hyp_len=43622, ref_len=42903) diff --git a/labs03/scores/model.iter220000.npz.bleu b/labs03/scores/model.iter220000.npz.bleu new file mode 100644 index 0000000..e37a581 --- /dev/null +++ b/labs03/scores/model.iter220000.npz.bleu @@ -0,0 +1 @@ +BLEU = 16.85, 48.9/21.9/11.7/6.5 (BP=1.000, ratio=1.020, hyp_len=43777, ref_len=42903) diff --git a/labs03/scores/model.iter230000.npz.bleu b/labs03/scores/model.iter230000.npz.bleu new file mode 100644 index 0000000..4a74673 --- /dev/null +++ b/labs03/scores/model.iter230000.npz.bleu @@ -0,0 +1 @@ +BLEU = 16.59, 48.3/21.6/11.4/6.3 (BP=1.000, ratio=1.029, hyp_len=44127, ref_len=42903) diff --git a/labs03/scores/model.iter240000.npz.bleu b/labs03/scores/model.iter240000.npz.bleu new file mode 100644 index 0000000..7c60d8e --- /dev/null +++ b/labs03/scores/model.iter240000.npz.bleu @@ -0,0 +1 @@ +BLEU = 16.94, 48.6/22.0/11.7/6.6 (BP=1.000, ratio=1.038, hyp_len=44517, ref_len=42903) diff --git a/labs03/scores/model.iter250000.npz.bleu b/labs03/scores/model.iter250000.npz.bleu new file mode 100644 index 0000000..5e047b6 --- /dev/null +++ b/labs03/scores/model.iter250000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.52, 49.7/22.5/12.2/6.9 (BP=1.000, ratio=1.003, hyp_len=43053, ref_len=42903) diff --git a/labs03/scores/model.iter260000.npz.bleu b/labs03/scores/model.iter260000.npz.bleu new file mode 100644 index 0000000..d5d6814 --- /dev/null +++ b/labs03/scores/model.iter260000.npz.bleu @@ -0,0 +1 @@ +BLEU = 16.82, 48.6/21.9/11.6/6.5 (BP=1.000, ratio=1.037, hyp_len=44475, ref_len=42903) diff --git a/labs03/scores/model.iter270000.npz.bleu b/labs03/scores/model.iter270000.npz.bleu new file mode 100644 index 0000000..e6ed040 --- /dev/null +++ b/labs03/scores/model.iter270000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.16, 49.2/22.3/11.9/6.6 (BP=1.000, ratio=1.025, hyp_len=43965, ref_len=42903) diff --git a/labs03/scores/model.iter280000.npz.bleu b/labs03/scores/model.iter280000.npz.bleu new file mode 100644 index 0000000..9a5b8fc --- /dev/null +++ b/labs03/scores/model.iter280000.npz.bleu @@ -0,0 +1 @@ +BLEU = 16.92, 49.4/22.1/11.7/6.4 (BP=1.000, ratio=1.013, hyp_len=43453, ref_len=42903) diff --git a/labs03/scores/model.iter290000.npz.bleu b/labs03/scores/model.iter290000.npz.bleu new file mode 100644 index 0000000..ea460d2 --- /dev/null +++ b/labs03/scores/model.iter290000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.20, 49.2/22.1/11.9/6.8 (BP=1.000, ratio=1.016, hyp_len=43578, ref_len=42903) diff --git a/labs03/scores/model.iter30000.npz.bleu b/labs03/scores/model.iter30000.npz.bleu new file mode 100644 index 0000000..beca2c8 --- /dev/null +++ b/labs03/scores/model.iter30000.npz.bleu @@ -0,0 +1 @@ +BLEU = 8.17, 33.9/11.6/5.0/2.3 (BP=1.000, ratio=1.207, hyp_len=51768, ref_len=42903) diff --git a/labs03/scores/model.iter300000.npz.bleu b/labs03/scores/model.iter300000.npz.bleu new file mode 100644 index 0000000..22adb3d --- /dev/null +++ b/labs03/scores/model.iter300000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.31, 49.2/22.2/12.0/6.8 (BP=1.000, ratio=1.017, hyp_len=43642, ref_len=42903) diff --git a/labs03/scores/model.iter310000.npz.bleu b/labs03/scores/model.iter310000.npz.bleu new file mode 100644 index 0000000..e540729 --- /dev/null +++ b/labs03/scores/model.iter310000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.57, 49.5/22.5/12.3/7.0 (BP=1.000, ratio=1.000, hyp_len=42900, ref_len=42903) diff --git a/labs03/scores/model.iter320000.npz.bleu b/labs03/scores/model.iter320000.npz.bleu new file mode 100644 index 0000000..fa27e8b --- /dev/null +++ b/labs03/scores/model.iter320000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.68, 49.6/22.6/12.3/7.1 (BP=1.000, ratio=1.013, hyp_len=43465, ref_len=42903) diff --git a/labs03/scores/model.iter330000.npz.bleu b/labs03/scores/model.iter330000.npz.bleu new file mode 100644 index 0000000..9647a15 --- /dev/null +++ b/labs03/scores/model.iter330000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.02, 48.3/21.9/11.8/6.7 (BP=1.000, ratio=1.044, hyp_len=44801, ref_len=42903) diff --git a/labs03/scores/model.iter340000.npz.bleu b/labs03/scores/model.iter340000.npz.bleu new file mode 100644 index 0000000..784fe91 --- /dev/null +++ b/labs03/scores/model.iter340000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.51, 49.7/22.7/12.2/6.9 (BP=1.000, ratio=1.011, hyp_len=43368, ref_len=42903) diff --git a/labs03/scores/model.iter350000.npz.bleu b/labs03/scores/model.iter350000.npz.bleu new file mode 100644 index 0000000..553eb3f --- /dev/null +++ b/labs03/scores/model.iter350000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.68, 50.3/22.9/12.4/7.0 (BP=0.995, ratio=0.995, hyp_len=42702, ref_len=42903) diff --git a/labs03/scores/model.iter360000.npz.bleu b/labs03/scores/model.iter360000.npz.bleu new file mode 100644 index 0000000..5318e68 --- /dev/null +++ b/labs03/scores/model.iter360000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.43, 49.0/22.4/12.2/6.9 (BP=1.000, ratio=1.040, hyp_len=44629, ref_len=42903) diff --git a/labs03/scores/model.iter370000.npz.bleu b/labs03/scores/model.iter370000.npz.bleu new file mode 100644 index 0000000..7cebde9 --- /dev/null +++ b/labs03/scores/model.iter370000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.16, 49.2/22.2/11.9/6.7 (BP=1.000, ratio=1.028, hyp_len=44085, ref_len=42903) diff --git a/labs03/scores/model.iter380000.npz.bleu b/labs03/scores/model.iter380000.npz.bleu new file mode 100644 index 0000000..59e8c47 --- /dev/null +++ b/labs03/scores/model.iter380000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.04, 49.1/22.2/11.8/6.6 (BP=1.000, ratio=1.030, hyp_len=44200, ref_len=42903) diff --git a/labs03/scores/model.iter390000.npz.bleu b/labs03/scores/model.iter390000.npz.bleu new file mode 100644 index 0000000..b98b614 --- /dev/null +++ b/labs03/scores/model.iter390000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.77, 49.8/22.8/12.4/7.1 (BP=1.000, ratio=1.008, hyp_len=43258, ref_len=42903) diff --git a/labs03/scores/model.iter40000.npz.bleu b/labs03/scores/model.iter40000.npz.bleu new file mode 100644 index 0000000..f6a3781 --- /dev/null +++ b/labs03/scores/model.iter40000.npz.bleu @@ -0,0 +1 @@ +BLEU = 8.55, 32.5/11.9/5.3/2.6 (BP=1.000, ratio=1.341, hyp_len=57542, ref_len=42903) diff --git a/labs03/scores/model.iter400000.npz.bleu b/labs03/scores/model.iter400000.npz.bleu new file mode 100644 index 0000000..a1b2236 --- /dev/null +++ b/labs03/scores/model.iter400000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.96, 50.0/23.0/12.6/7.2 (BP=1.000, ratio=1.002, hyp_len=43009, ref_len=42903) diff --git a/labs03/scores/model.iter410000.npz.bleu b/labs03/scores/model.iter410000.npz.bleu new file mode 100644 index 0000000..1f72abd --- /dev/null +++ b/labs03/scores/model.iter410000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.66, 49.6/22.6/12.3/7.0 (BP=1.000, ratio=1.019, hyp_len=43697, ref_len=42903) diff --git a/labs03/scores/model.iter420000.npz.bleu b/labs03/scores/model.iter420000.npz.bleu new file mode 100644 index 0000000..05c904e --- /dev/null +++ b/labs03/scores/model.iter420000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.93, 49.8/23.1/12.6/7.2 (BP=1.000, ratio=1.021, hyp_len=43824, ref_len=42903) diff --git a/labs03/scores/model.iter430000.npz.bleu b/labs03/scores/model.iter430000.npz.bleu new file mode 100644 index 0000000..9d0ddc0 --- /dev/null +++ b/labs03/scores/model.iter430000.npz.bleu @@ -0,0 +1 @@ +BLEU = 16.55, 47.0/21.3/11.5/6.5 (BP=1.000, ratio=1.071, hyp_len=45947, ref_len=42903) diff --git a/labs03/scores/model.iter440000.npz.bleu b/labs03/scores/model.iter440000.npz.bleu new file mode 100644 index 0000000..fc24017 --- /dev/null +++ b/labs03/scores/model.iter440000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.59, 49.8/22.7/12.2/6.9 (BP=1.000, ratio=1.009, hyp_len=43301, ref_len=42903) diff --git a/labs03/scores/model.iter450000.npz.bleu b/labs03/scores/model.iter450000.npz.bleu new file mode 100644 index 0000000..6f284b8 --- /dev/null +++ b/labs03/scores/model.iter450000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.41, 49.2/22.5/12.1/6.9 (BP=1.000, ratio=1.023, hyp_len=43894, ref_len=42903) diff --git a/labs03/scores/model.iter460000.npz.bleu b/labs03/scores/model.iter460000.npz.bleu new file mode 100644 index 0000000..71fb5a1 --- /dev/null +++ b/labs03/scores/model.iter460000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.52, 49.9/22.7/12.2/6.8 (BP=1.000, ratio=1.005, hyp_len=43127, ref_len=42903) diff --git a/labs03/scores/model.iter470000.npz.bleu b/labs03/scores/model.iter470000.npz.bleu new file mode 100644 index 0000000..c70f06f --- /dev/null +++ b/labs03/scores/model.iter470000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.30, 49.1/22.3/12.0/6.8 (BP=1.000, ratio=1.024, hyp_len=43917, ref_len=42903) diff --git a/labs03/scores/model.iter480000.npz.bleu b/labs03/scores/model.iter480000.npz.bleu new file mode 100644 index 0000000..d5d65f7 --- /dev/null +++ b/labs03/scores/model.iter480000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.21, 48.8/22.1/12.0/6.8 (BP=1.000, ratio=1.036, hyp_len=44454, ref_len=42903) diff --git a/labs03/scores/model.iter490000.npz.bleu b/labs03/scores/model.iter490000.npz.bleu new file mode 100644 index 0000000..aed4444 --- /dev/null +++ b/labs03/scores/model.iter490000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.79, 50.0/22.9/12.4/7.1 (BP=1.000, ratio=1.000, hyp_len=42891, ref_len=42903) diff --git a/labs03/scores/model.iter50000.npz.bleu b/labs03/scores/model.iter50000.npz.bleu new file mode 100644 index 0000000..5455567 --- /dev/null +++ b/labs03/scores/model.iter50000.npz.bleu @@ -0,0 +1 @@ +BLEU = 11.03, 39.5/15.1/7.1/3.5 (BP=1.000, ratio=1.116, hyp_len=47860, ref_len=42903) diff --git a/labs03/scores/model.iter500000.npz.bleu b/labs03/scores/model.iter500000.npz.bleu new file mode 100644 index 0000000..7744912 --- /dev/null +++ b/labs03/scores/model.iter500000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.25, 49.4/22.3/12.0/6.7 (BP=1.000, ratio=1.014, hyp_len=43517, ref_len=42903) diff --git a/labs03/scores/model.iter510000.npz.bleu b/labs03/scores/model.iter510000.npz.bleu new file mode 100644 index 0000000..7a94c57 --- /dev/null +++ b/labs03/scores/model.iter510000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.78, 50.0/22.8/12.4/7.1 (BP=1.000, ratio=1.000, hyp_len=42890, ref_len=42903) diff --git a/labs03/scores/model.iter520000.npz.bleu b/labs03/scores/model.iter520000.npz.bleu new file mode 100644 index 0000000..4f622dd --- /dev/null +++ b/labs03/scores/model.iter520000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.68, 49.8/22.7/12.4/7.0 (BP=1.000, ratio=1.003, hyp_len=43021, ref_len=42903) diff --git a/labs03/scores/model.iter530000.npz.bleu b/labs03/scores/model.iter530000.npz.bleu new file mode 100644 index 0000000..d538c9b --- /dev/null +++ b/labs03/scores/model.iter530000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.31, 48.9/22.3/12.1/6.8 (BP=1.000, ratio=1.032, hyp_len=44262, ref_len=42903) diff --git a/labs03/scores/model.iter540000.npz.bleu b/labs03/scores/model.iter540000.npz.bleu new file mode 100644 index 0000000..48cdef1 --- /dev/null +++ b/labs03/scores/model.iter540000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.92, 49.8/22.9/12.5/7.2 (BP=1.000, ratio=1.015, hyp_len=43562, ref_len=42903) diff --git a/labs03/scores/model.iter550000.npz.bleu b/labs03/scores/model.iter550000.npz.bleu new file mode 100644 index 0000000..8dc8838 --- /dev/null +++ b/labs03/scores/model.iter550000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.84, 50.0/22.9/12.5/7.1 (BP=1.000, ratio=1.011, hyp_len=43389, ref_len=42903) diff --git a/labs03/scores/model.iter560000.npz.bleu b/labs03/scores/model.iter560000.npz.bleu new file mode 100644 index 0000000..85e0ef3 --- /dev/null +++ b/labs03/scores/model.iter560000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.75, 49.8/22.8/12.4/7.1 (BP=1.000, ratio=1.014, hyp_len=43494, ref_len=42903) diff --git a/labs03/scores/model.iter570000.npz.bleu b/labs03/scores/model.iter570000.npz.bleu new file mode 100644 index 0000000..0849629 --- /dev/null +++ b/labs03/scores/model.iter570000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.94, 50.0/23.1/12.6/7.1 (BP=1.000, ratio=1.013, hyp_len=43442, ref_len=42903) diff --git a/labs03/scores/model.iter580000.npz.bleu b/labs03/scores/model.iter580000.npz.bleu new file mode 100644 index 0000000..b0d5a26 --- /dev/null +++ b/labs03/scores/model.iter580000.npz.bleu @@ -0,0 +1 @@ +BLEU = 18.12, 50.3/23.1/12.7/7.3 (BP=1.000, ratio=1.004, hyp_len=43077, ref_len=42903) diff --git a/labs03/scores/model.iter590000.npz.bleu b/labs03/scores/model.iter590000.npz.bleu new file mode 100644 index 0000000..afcf0ba --- /dev/null +++ b/labs03/scores/model.iter590000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.29, 48.8/22.3/12.1/6.8 (BP=1.000, ratio=1.042, hyp_len=44688, ref_len=42903) diff --git a/labs03/scores/model.iter60000.npz.bleu b/labs03/scores/model.iter60000.npz.bleu new file mode 100644 index 0000000..1956b32 --- /dev/null +++ b/labs03/scores/model.iter60000.npz.bleu @@ -0,0 +1 @@ +BLEU = 11.92, 40.2/16.1/7.8/4.0 (BP=1.000, ratio=1.144, hyp_len=49071, ref_len=42903) diff --git a/labs03/scores/model.iter600000.npz.bleu b/labs03/scores/model.iter600000.npz.bleu new file mode 100644 index 0000000..a680910 --- /dev/null +++ b/labs03/scores/model.iter600000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.46, 49.5/22.5/12.2/6.8 (BP=1.000, ratio=1.026, hyp_len=44035, ref_len=42903) diff --git a/labs03/scores/model.iter610000.npz.bleu b/labs03/scores/model.iter610000.npz.bleu new file mode 100644 index 0000000..6e55d7b --- /dev/null +++ b/labs03/scores/model.iter610000.npz.bleu @@ -0,0 +1 @@ +BLEU = 18.19, 50.3/23.2/12.7/7.4 (BP=1.000, ratio=1.007, hyp_len=43221, ref_len=42903) diff --git a/labs03/scores/model.iter620000.npz.bleu b/labs03/scores/model.iter620000.npz.bleu new file mode 100644 index 0000000..af92c95 --- /dev/null +++ b/labs03/scores/model.iter620000.npz.bleu @@ -0,0 +1 @@ +BLEU = 17.84, 50.1/22.9/12.5/7.1 (BP=1.000, ratio=1.016, hyp_len=43604, ref_len=42903) diff --git a/labs03/scores/model.iter630000.npz.bleu b/labs03/scores/model.iter630000.npz.bleu new file mode 100644 index 0000000..26ef4b9 --- /dev/null +++ b/labs03/scores/model.iter630000.npz.bleu @@ -0,0 +1 @@ +BLEU = 18.30, 50.8/23.4/12.9/7.5 (BP=0.994, ratio=0.994, hyp_len=42632, ref_len=42903) diff --git a/labs03/scores/model.iter640000.npz.bleu b/labs03/scores/model.iter640000.npz.bleu new file mode 100644 index 0000000..c1b857c --- /dev/null +++ b/labs03/scores/model.iter640000.npz.bleu @@ -0,0 +1 @@ +BLEU = 0, 0/0/0/0 (BP=0, ratio=0, hyp_len=0, ref_len=0) diff --git a/labs03/scores/model.iter70000.npz.bleu b/labs03/scores/model.iter70000.npz.bleu new file mode 100644 index 0000000..a4232f5 --- /dev/null +++ b/labs03/scores/model.iter70000.npz.bleu @@ -0,0 +1 @@ +BLEU = 12.77, 42.4/17.1/8.4/4.4 (BP=1.000, ratio=1.096, hyp_len=47008, ref_len=42903) diff --git a/labs03/scores/model.iter80000.npz.bleu b/labs03/scores/model.iter80000.npz.bleu new file mode 100644 index 0000000..ed8edfa --- /dev/null +++ b/labs03/scores/model.iter80000.npz.bleu @@ -0,0 +1 @@ +BLEU = 14.43, 46.7/19.4/9.7/5.2 (BP=0.988, ratio=0.988, hyp_len=42376, ref_len=42903) diff --git a/labs03/scores/model.iter90000.npz.bleu b/labs03/scores/model.iter90000.npz.bleu new file mode 100644 index 0000000..cd456bf --- /dev/null +++ b/labs03/scores/model.iter90000.npz.bleu @@ -0,0 +1 @@ +BLEU = 13.85, 44.1/18.5/9.2/4.9 (BP=1.000, ratio=1.092, hyp_len=46859, ref_len=42903) From feac488751998982c081611c227aa8d1d77bbb1e Mon Sep 17 00:00:00 2001 From: Tomasz Dwojak Date: Sat, 2 Dec 2017 12:43:05 +0100 Subject: [PATCH 05/10] Fix wyklad --- labs03/Podstawy 2.ipynb | 238 ++++++++++++++++------------------------ 1 file changed, 93 insertions(+), 145 deletions(-) diff --git a/labs03/Podstawy 2.ipynb b/labs03/Podstawy 2.ipynb index 7e22b71..53da94e 100644 --- a/labs03/Podstawy 2.ipynb +++ b/labs03/Podstawy 2.ipynb @@ -49,22 +49,13 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "123\n", - "[1, 2, 3, 1, 2, 3]\n" - ] - } - ], + "outputs": [], "source": [ "def dwojak(x): x *= 2\n", " \n", @@ -113,22 +104,13 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1, 2, 3, 1, 2, 3]\n", - "[1, 2, 3]\n" - ] - } - ], + "outputs": [], "source": [ "def dwojak1(x): x *= 2\n", "def dwojak2(x): x = x * 2\n", @@ -144,21 +126,13 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1, 2, 3, 4]\n" - ] - } - ], + "outputs": [], "source": [ "l = [1, 2, 3]\n", "e = l\n", @@ -168,21 +142,13 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[1], [1], [1]]\n" - ] - } - ], + "outputs": [], "source": [ "e = []\n", "f = [e for i in range(3)]\n", @@ -206,22 +172,13 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(1, 'napis', None)\n", - "3\n" - ] - } - ], + "outputs": [], "source": [ "t = (1, \"napis\", None)\n", "elem = t[0]\n", @@ -242,33 +199,13 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "15\n", - "a == 1\n", - "b == (3, 4)\n" - ] - }, - { - "data": { - "text/plain": [ - "'b'" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "def suma(*args):\n", " return sum(args)\n", @@ -294,24 +231,13 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a\n", - "b\n", - "c\n", - "d\n" - ] - } - ], + "outputs": [], "source": [ "def alfaRange(x, y):\n", " for i in range(ord(x), ord(y)):\n", @@ -334,23 +260,13 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": null, "metadata": { "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "W Paryżu najlepsze kasztany są na placu Pigalle\n", - "Zuzanna lubi je tylko jesienią.\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "plik = open(\"haslo.txt\", 'r')\n", "for linia in plik.readlines():\n", @@ -361,24 +277,13 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": null, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "W Paryżu najlepsze kasztany są na placu Pigalle\n", - "\n", - "Zuzanna lubi je tylko jesienią.\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "with open(\"haslo.txt\", 'r') as plik:\n", " for linia in plik.readlines():\n", @@ -388,8 +293,9 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": null, "metadata": { + "collapsed": true, "slideshow": { "slide_type": "slide" } @@ -428,22 +334,13 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": null, "metadata": { "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "posix\n", - "Nazwa uzytkownika: tomaszd\n" - ] - } - ], + "outputs": [], "source": [ "import os\n", "print(os.name)\n", @@ -454,31 +351,13 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": null, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Counter({'o': 4, 'n': 4, 'a': 4, 'k': 3, 't': 3, 'y': 2, 'i': 2, 'c': 2, 'z': 2, 's': 1, 'p': 1, 'l': 1, 'ń': 1, 'w': 1, 'e': 1})\n" - ] - }, - { - "data": { - "text/plain": [ - "array([[ 1., 3., 4., 5.]], dtype=float32)" - ] - }, - "execution_count": 64, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from collections import *\n", "print(Counter(\"konstantynopolitańczykowianeczka\"))\n", @@ -487,6 +366,75 @@ "np.array([[1, 3, 4, 5]], dtype='float32')" ] }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Instalacja\n", + "\n", + " * lokalnie (per użytkownik) lub globalnie\n", + " * pyCharm lub linia komend, np. ``pip install --user flask`` lub ``python -m pip install --user flask``" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Wczytywanie z klawiatury" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "name = input(\"What's your name?\\n\")\n", + "print(\"Welcome home, {}.\".format(name))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "liczby = eval(input(\"Podaj liczby\"))\n", + "print(sum(liczby))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Co ominąłem?\n", + "\n", + " * klasy (jutro)\n", + " * podział programu na pliki (jutro)\n", + " " + ] + }, { "cell_type": "code", "execution_count": null, From 0a345e2101514f22d1272f069d22b69adf83fef3 Mon Sep 17 00:00:00 2001 From: Tomasz Dwojak Date: Sun, 3 Dec 2017 11:08:00 +0100 Subject: [PATCH 06/10] Add klasy notebook --- labs04/Klasy.ipynb | 453 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 453 insertions(+) create mode 100644 labs04/Klasy.ipynb diff --git a/labs04/Klasy.ipynb b/labs04/Klasy.ipynb new file mode 100644 index 0000000..5c34339 --- /dev/null +++ b/labs04/Klasy.ipynb @@ -0,0 +1,453 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Wprowadzenie do Pythona: część 2\n", + "\n", + "## Tomasz Dwojak\n", + "\n", + "## 2 grudnia 2017" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Plan na dziś:\n", + " * ciąg dalszy podstaw,\n", + " * klasy,\n", + " * moduły," + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Python jest językiem obiektowym \n", + " * Wszystko jest obiektem: liczby, napisy, None, funkcje, moduły (biblioteki)..." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "Python da się lubić !\n" + ] + } + ], + "source": [ + "print((2017).imag)\n", + "print(' '.join(['Python', 'da', 'się', 'lubić', '!']))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Konstrukcja" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "class NajprostszaKlasa:\n", + " pass\n", + "\n", + "nasza_klasa = NajprostszaKlasa() # Uwaga na nawiasy na końcu!\n", + "print(type(nasza_klasa))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## (Pseudo) Konstruktor \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "class Punkt:\n", + " def __init__(self, x, y):\n", + " self.x = x\n", + " self.y = y\n", + "\n", + "punkt = Punkt(2, 3)\n", + "print(punkt.x)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "class Figura:\n", + " def __init__(self, vertexes):\n", + " self.vertexes = vertexes\n", + " \n", + " def liczba_wierzcholkow(self):\n", + " return len(self.vertexes)\n", + " \n", + " def dodaj_wierzcholek(self, x):\n", + " self.vertexes.append(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "class Prostokat(Figura):\n", + " def __init__(self, vertexes):\n", + " super().__init__(vertexes)\n", + " \n", + " def czy_jestem_kwadratem(self):\n", + " pass\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "class Figura:\n", + " def __init__(self, vertexes):\n", + " self.vertexes = vertexes\n", + " \n", + " def liczba_wierzcholkow(self):\n", + " return len(self.vertexes)\n", + " \n", + " def __len__(self):\n", + " return self.liczba_wierzcholkow()\n", + " \n", + "len(Figura([Punkt(2,3), Punkt(3,4), Punkt(0, 0)]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Dobre praktyki: komentarze" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on class Punkt in module __main__:\n", + "\n", + "class Punkt(builtins.object)\n", + " | Klasa reprezentująca punkt w 2D.\n", + " | \n", + " | Methods defined here:\n", + " | \n", + " | __init__(self, x, y)\n", + " | opis argumentów x i y.\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Data descriptors defined here:\n", + " | \n", + " | __dict__\n", + " | dictionary for instance variables (if defined)\n", + " | \n", + " | __weakref__\n", + " | list of weak references to the object (if defined)\n", + "\n" + ] + } + ], + "source": [ + "class Punkt(object):\n", + " \"\"\"Klasa reprezentująca punkt w 2D.\"\"\"\n", + " def __init__(self, x, y):\n", + " \"\"\"opis argumentów x i y.\"\"\"\n", + " self.x = x\n", + " self.y = y" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on class Punkt in module __main__:\n", + "\n", + "class Punkt(builtins.object)\n", + " | Klasa reprezentująca punkt w 2D.\n", + " | \n", + " | Methods defined here:\n", + " | \n", + " | __init__(self, x, y)\n", + " | opis argumentów x i y.\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Data descriptors defined here:\n", + " | \n", + " | __dict__\n", + " | dictionary for instance variables (if defined)\n", + " | \n", + " | __weakref__\n", + " | list of weak references to the object (if defined)\n", + "\n" + ] + } + ], + "source": [ + "help(Punkt)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Enkapsulacja: publiczne czy prywatne?\n", + " * Prywatne zaczynają się od dwóch podkreśleń: ``__``, np. ``def __policz(self)``\n", + " * chronione tylko w konwencji, zaczynają się od '\\_', np. ``def _parse(self)``\n", + " * publiczne jest wszystko co nie zaczyna się od '\\_'." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'Parser' object has no attribute '__parse'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\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'" + ] + } + ], + "source": [ + "class Parser(object):\n", + " def __parse(self): pass\n", + " def _get(self): pass\n", + "parser = Parser()\n", + "parser._get()\n", + "parser.__parse()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Iteratory" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<__main__.Punkt object at 0x7feb78045908>\n", + "<__main__.Punkt object at 0x7feb78045828>\n", + "<__main__.Punkt object at 0x7feb780457f0>\n" + ] + } + ], + "source": [ + "class Figura:\n", + " def __init__(self, vertexes):\n", + " self.vertexes = vertexes \n", + " \n", + " def __iter__(self):\n", + " self.index = -1\n", + " return self\n", + " \n", + " def __next__(self):\n", + " self.index += 1\n", + " if self.index == len(self.vertexes):\n", + " raise StopIteration\n", + " return self.vertexes[self.index]\n", + " \n", + "for v in Figura([Punkt(2,3), Punkt(3,4), Punkt(0, 0)]):\n", + " print(v)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Co zostało pominięte?\n", + " * pola klas i metody statyczne,\n", + " * dekoratory,\n", + " * mutable i immutable \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 9765333eaecf990f171fbec4d83a1606c31723fc Mon Sep 17 00:00:00 2001 From: Tomasz Dwojak Date: Sun, 3 Dec 2017 11:09:57 +0100 Subject: [PATCH 07/10] Add gitignore --- .gitignore | 5 + labs03/Podstawy 2.ipynb | 230 ++++++++++++++++++++++++++++++++++------ 2 files changed, 200 insertions(+), 35 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..947a68b --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +# wiki files +Python2017.wiki/* +*/.ipynb_checkpoints/* +.ropeproject +*/.ropeproject diff --git a/labs03/Podstawy 2.ipynb b/labs03/Podstawy 2.ipynb index 53da94e..adf5795 100644 --- a/labs03/Podstawy 2.ipynb +++ b/labs03/Podstawy 2.ipynb @@ -49,22 +49,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n", + "[1, 2, 3, 1, 2, 3]\n", + "123\n" + ] + } + ], "source": [ - "def dwojak(x): x *= 2\n", + "def dwojak(x): \n", + " x *= 2\n", + " return x\n", " \n", "l = [1, 2, 3]\n", "s = \"123\"\n", "\n", "dwojak(l)\n", "dwojak(s)\n", - "\n", + "print(dwojak(1))\n", "print(l)\n", "print(s)" ] @@ -104,16 +116,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 3, 1, 2, 3]\n", + "F: [1, 2, 3, 1, 2, 3]\n", + "[1, 2, 3]\n" + ] + } + ], "source": [ "def dwojak1(x): x *= 2\n", - "def dwojak2(x): x = x * 2\n", + "def dwojak2(x): \n", + " x = x * 2\n", + " print(\"F:\", x)\n", "\n", "l = [1,2, 3]\n", "dwojak1(l)\n", @@ -126,29 +150,47 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 3]\n", + "[1, 2, 3, 4]\n" + ] + } + ], "source": [ "l = [1, 2, 3]\n", - "e = l\n", + "e = l[:]\n", "e.append(4)\n", - "print(l)" + "print(l)\n", + "print(e)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1], [1], [1]]\n" + ] + } + ], "source": [ "e = []\n", "f = [e for i in range(3)]\n", @@ -172,18 +214,39 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1, 'napis', [0])\n", + "3\n" + ] + }, + { + "ename": "TypeError", + "evalue": "unhashable type: 'list'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\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'" + ] + } + ], "source": [ - "t = (1, \"napis\", None)\n", - "elem = t[0]\n", + "t = (1, \"napis\", [])\n", + "t[-1].append(0)\n", "print(t)\n", - "print(len(t))" + "print(len(t))\n", + "print({t: None})" ] }, { @@ -199,19 +262,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": { "slideshow": { "slide_type": "fragment" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15\n", + "a == 1\n", + "b == (3, 4)\n" + ] + } + ], "source": [ "def suma(*args):\n", " return sum(args)\n", "print(suma(1,2,3,4,5))\n", "\n", - "def greet_me(**kwargs):\n", + "def greet_me(z=None,**kwargs):\n", " if kwargs is not None:\n", " for key, value in kwargs.items():\n", " print(\"%s == %s\" %(key,value))\n", @@ -231,16 +304,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "metadata": { "slideshow": { "slide_type": "fragment" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "97\n", + "a\n", + "98\n", + "b\n", + "99\n", + "c\n", + "100\n", + "d\n" + ] + } + ], "source": [ "def alfaRange(x, y):\n", " for i in range(ord(x), ord(y)):\n", + " print(i)\n", " yield chr(i)\n", "\n", "for c in alfaRange('a', 'e'):\n", @@ -260,40 +349,74 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 45, "metadata": { "slideshow": { "slide_type": "fragment" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "W Paryżu najlepsze kasztany są na placu Pigalle\n", + "Zuzanna lubi je tylko jesienią.\n", + "\n", + ">>\n" + ] + } + ], "source": [ "plik = open(\"haslo.txt\", 'r')\n", "for linia in plik.readlines():\n", " print(linia.strip())\n", "print(plik.read())\n", + "print(\">>\")\n", "plik.close()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 47, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "W Paryżu najlepsze kasztany są na placu Pigalle\n", + "\n", + "Zuzanna lubi je tylko jesienią.\n", + "\n" + ] + }, + { + "ename": "ValueError", + "evalue": "I/O operation on closed file.", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\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." + ] + } + ], "source": [ "with open(\"haslo.txt\", 'r') as plik:\n", " for linia in plik.readlines():\n", " print(linia)\n", - "# print(plik.read())" + "print(plik.read())" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 48, "metadata": { "collapsed": true, "slideshow": { @@ -334,13 +457,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 49, "metadata": { "slideshow": { "slide_type": "fragment" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "posix\n", + "Nazwa uzytkownika: tomaszd\n" + ] + } + ], "source": [ "import os\n", "print(os.name)\n", @@ -351,13 +483,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 50, "metadata": { "slideshow": { "slide_type": "slide" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Counter({'o': 4, 'n': 4, 'a': 4, 'k': 3, 't': 3, 'y': 2, 'i': 2, 'c': 2, 'z': 2, 's': 1, 'p': 1, 'l': 1, 'ń': 1, 'w': 1, 'e': 1})\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[ 1., 3., 4., 5.]], dtype=float32)" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from collections import *\n", "print(Counter(\"konstantynopolitańczykowianeczka\"))\n", @@ -394,13 +544,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 51, "metadata": { "slideshow": { "slide_type": "fragment" } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "What's your name?\n", + "Tomasz\n", + "Welcome home, Tomasz.\n" + ] + } + ], "source": [ "name = input(\"What's your name?\\n\")\n", "print(\"Welcome home, {}.\".format(name))" From 8231e67c8f369886a9a414a244203487388065fb Mon Sep 17 00:00:00 2001 From: Tomasz Dwojak Date: Sun, 3 Dec 2017 11:10:26 +0100 Subject: [PATCH 08/10] add missed file example --- labs03/haslo.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 labs03/haslo.txt diff --git a/labs03/haslo.txt b/labs03/haslo.txt new file mode 100644 index 0000000..f269661 --- /dev/null +++ b/labs03/haslo.txt @@ -0,0 +1,2 @@ +W Paryżu najlepsze kasztany są na placu Pigalle +Zuzanna lubi je tylko jesienią. From f9c3661884a1d7a57844515e58a257021d8ce1e5 Mon Sep 17 00:00:00 2001 From: Tomasz Dwojak Date: Sun, 3 Dec 2017 11:14:29 +0100 Subject: [PATCH 09/10] Organize gitignore file --- .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index 947a68b..fad4507 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,12 @@ # wiki files Python2017.wiki/* + +# Jupyter Files */.ipynb_checkpoints/* + +# Rope files .ropeproject */.ropeproject + +# Labs temp files +labs03/haslo2.txt From 8c76a052001eb7efe6cb0610a238cad5181c7325 Mon Sep 17 00:00:00 2001 From: Tomasz Dwojak Date: Sun, 3 Dec 2017 13:05:05 +0100 Subject: [PATCH 10/10] Add labs4 --- labs04/Klasy.ipynb | 297 ++++++++++++++++++++++++++++++++++++++------- labs04/README.md | 18 +++ labs04/task01.py | 3 + labs04/task02.py | 3 + labs04/task03.py | 3 + 5 files changed, 280 insertions(+), 44 deletions(-) create mode 100644 labs04/README.md create mode 100644 labs04/task01.py create mode 100644 labs04/task02.py create mode 100644 labs04/task03.py diff --git a/labs04/Klasy.ipynb b/labs04/Klasy.ipynb index 5c34339..1cd0a99 100644 --- a/labs04/Klasy.ipynb +++ b/labs04/Klasy.ipynb @@ -9,11 +9,11 @@ } }, "source": [ - "# Wprowadzenie do Pythona: część 2\n", + "# Wprowadzenie do Pythona: Klasy\n", "\n", "## Tomasz Dwojak\n", "\n", - "## 2 grudnia 2017" + "### 3 grudnia 2017" ] }, { @@ -25,9 +25,8 @@ }, "source": [ "# Plan na dziś:\n", - " * ciąg dalszy podstaw,\n", " * klasy,\n", - " * moduły," + " * wyjątki." ] }, { @@ -229,39 +228,13 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 4, "metadata": { "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Help on class Punkt in module __main__:\n", - "\n", - "class Punkt(builtins.object)\n", - " | Klasa reprezentująca punkt w 2D.\n", - " | \n", - " | Methods defined here:\n", - " | \n", - " | __init__(self, x, y)\n", - " | opis argumentów x i y.\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Data descriptors defined here:\n", - " | \n", - " | __dict__\n", - " | dictionary for instance variables (if defined)\n", - " | \n", - " | __weakref__\n", - " | list of weak references to the object (if defined)\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "class Punkt(object):\n", " \"\"\"Klasa reprezentująca punkt w 2D.\"\"\"\n", @@ -273,7 +246,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 5, "metadata": { "slideshow": { "slide_type": "slide" @@ -326,7 +299,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 6, "metadata": { "slideshow": { "slide_type": "slide" @@ -340,7 +313,7 @@ "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\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\u001b[0m in \u001b[0;36m\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'" ] } @@ -367,7 +340,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 7, "metadata": { "slideshow": { "slide_type": "fragment" @@ -378,9 +351,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "<__main__.Punkt object at 0x7feb78045908>\n", - "<__main__.Punkt object at 0x7feb78045828>\n", - "<__main__.Punkt object at 0x7feb780457f0>\n" + "<__main__.Punkt object at 0x7f728015b358>\n", + "<__main__.Punkt object at 0x7f728015b4a8>\n", + "<__main__.Punkt object at 0x7f728015b438>\n" ] } ], @@ -406,16 +379,252 @@ { "cell_type": "markdown", "metadata": { + "collapsed": true, "slideshow": { "slide_type": "slide" } }, "source": [ - "## Co zostało pominięte?\n", - " * pola klas i metody statyczne,\n", - " * dekoratory,\n", - " * mutable i immutable \n", - " " + "## Atrybuty i metody statyczne" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "0\n" + ] + } + ], + "source": [ + "class Klasa:\n", + " atrybut = 0\n", + "\n", + "klasa = Klasa()\n", + "print(Klasa.atrybut)\n", + "print(klasa.atrybut)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Jestem statyczna!\n" + ] + } + ], + "source": [ + "class Klasa:\n", + " def __init__(self):\n", + " self.t = 0\n", + " def metoda():\n", + " print(\"Jestem statyczna!\")\n", + "\n", + "Klasa.metoda()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Wyjątki" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: 'nieistniejący_plik.txt'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\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'" + ] + } + ], + "source": [ + "with open(\"nieistniejący_plik.txt\") as plik:\n", + " content = plik.read()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "try:\n", + " with open(\"nieistniejący_plik.txt\") as plik:\n", + " content = plik.read()\n", + "except FileNotFoundError:\n", + " contenct = \"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning [Errno 2] No such file or directory: 'nieistniejący_plik.txt'\n" + ] + } + ], + "source": [ + "try:\n", + " with open(\"nieistniejący_plik.txt\") as plik:\n", + " content = plik.read()\n", + "except FileNotFoundError as e:\n", + " print(\"Warning {}\".format(e))\n", + " contenct = \"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning [Errno 2] No such file or directory: 'nieistniejący_plik.txt'\n" + ] + } + ], + "source": [ + "try:\n", + " with open(\"nieistniejący_plik.txt\") as plik:\n", + " content = plik.read()\n", + "except Exception as e:\n", + " print(\"Warning {}\".format(e))\n", + " contenct = \"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "try:\n", + " with open(\"nieistniejący_plik.txt\") as plik:\n", + " content = plik.read()\n", + "except:\n", + " contenct = \"\"" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "class Figura:\n", + " def __init__(self, vertexes):\n", + " if len(vertexes) == 0:\n", + " raise Exception(\"Empty list of vertexes\")\n", + " self.vertexes = vertexes" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": true, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "source": [ + "class MyError(Exception):\n", + " def __init__(self, text):\n", + " self.text = text\n", + " def __str__(self):\n", + " return self.text" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "ename": "MyError", + "evalue": "Coś poszło nie tak!", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mMyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\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!" + ] + } + ], + "source": [ + "raise MyError(\"Coś poszło nie tak!\")" ] }, { diff --git a/labs04/README.md b/labs04/README.md new file mode 100644 index 0000000..cce5ca4 --- /dev/null +++ b/labs04/README.md @@ -0,0 +1,18 @@ +**ć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). + +**ćwiczenie 2** +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. + * 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) ** +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. + + diff --git a/labs04/task01.py b/labs04/task01.py new file mode 100644 index 0000000..88741a4 --- /dev/null +++ b/labs04/task01.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- + diff --git a/labs04/task02.py b/labs04/task02.py new file mode 100644 index 0000000..88741a4 --- /dev/null +++ b/labs04/task02.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- + diff --git a/labs04/task03.py b/labs04/task03.py new file mode 100644 index 0000000..88741a4 --- /dev/null +++ b/labs04/task03.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- +