Add labs3
This commit is contained in:
parent
535dabadea
commit
d311b94e01
522
labs03/Podstawy 2.ipynb
Normal file
522
labs03/Podstawy 2.ipynb
Normal file
@ -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
|
||||
}
|
36
labs03/README.md
Normal file
36
labs03/README.md
Normal file
@ -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ą).
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user