From fc8b9ca88ce9d9c639655f97804864fe074015a8 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Fri, 22 Jan 2016 17:10:34 +0100 Subject: [PATCH 01/22] Update L1.ipynb Zmieniona struktura metadanych, w efekcie bardziej przejrzysty pokaz slajdow --- L1.ipynb | 735 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 576 insertions(+), 159 deletions(-) diff --git a/L1.ipynb b/L1.ipynb index 8d9a806..f28d0e0 100644 --- a/L1.ipynb +++ b/L1.ipynb @@ -26,18 +26,35 @@ "cell_type": "markdown", "metadata": { "slideshow": { - "slide_type": "subslide" + "slide_type": "fragment" } }, "source": [ "* Prowadzący:\n", - " * dr Leszek Grzanka, [@leszekgrzanka](https://twitter.com/leszekgrzanka), grzanka@agh.edu.pl\n", + " * dr Leszek Grzanka, [@leszekgrzanka]\n", + " (https://twitter.com/leszekgrzanka), \n", + " grzanka@agh.edu.pl\n", + " \n", "* Współautorzy materiałów: \n", - " * dr inż. Krzysztof Dorosz, [@krzysztofdorosz](https://twitter.com/krzysztofdorosz), dorosz@agh.edu.pl\n", - " * dr inż. Michał Korzycki, [@michalkorzycki](https://twitter.com/michalkorzycki), korzycki@agh.edu.pl\n", - "* Oficjalne ogłoszenia poprzez twitter: [@PythonAGH](https://twitter.com/PythonAGH)\n", - "* Slajdy udostępnione w formacie IPython Notebook na [naszym koncie github agh-glk](https://github.com/agh-glk/python-lecture)\n", - "* Na pewno nie unikniemy gdzieś błędu w materiałach wykładu, dlatego gorąco zachęcamy do zgłaszania poprawek na githubie (fork + pull request)" + " * dr inż. Krzysztof Dorosz, [@krzysztofdorosz]\n", + " (https://twitter.com/krzysztofdorosz), \n", + " dorosz@agh.edu.pl\n", + " \n", + " * dr inż. Michał Korzycki, [@michalkorzycki]\n", + " (https://twitter.com/michalkorzycki), \n", + " korzycki@agh.edu.pl\n", + " \n", + "* Oficjalne ogłoszenia poprzez twitter: \n", + " [@PythonAGH]\n", + " (https://twitter.com/PythonAGH)\n", + " \n", + "* Slajdy udostępnione w formacie IPython Notebook \n", + " na [naszym koncie github agh-glk]\n", + " (https://github.com/agh-glk/python-lecture)\n", + " \n", + "* Na pewno nie unikniemy gdzieś błędu w materiałach \n", + " wykładu, dlatego gorąco zachęcamy do zgłaszania \n", + " poprawek na githubie (fork + pull request)" ] }, { @@ -55,7 +72,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -64,16 +85,20 @@ " return []\n", " else:\n", " tmp = list[0]\n", - " less = [x for x in list if x < tmp]\n", + " less = [x for x in list[1:] if x < tmp]\n", " more = [x for x in list[1:] if x >= tmp]\n", " return fun(less) + [tmp] + fun(more)\n", " \n", - "fun([3,2,1,4])" + "fun([3, 2, 1, 4])" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Co takiego robi powyższy kod?" ] @@ -91,7 +116,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* Wysokopoziomowym (programowanie funkcjonalne!)\n", "* Skryptowym (ale ma bytecode jak Java)\n", @@ -115,7 +144,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ " * Szybsze pisanie kodu - zwykle około 2-10 razy krótszy kod (w porównaniu do C, C++, Java wg Guido) \n", " * Łatwiejsze utrzymanie kodu - nacisk na czytelność\n", @@ -139,7 +172,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* Nie jest tak szybki jak C/C++\n", "\n", @@ -153,6 +190,7 @@ "execution_count": null, "metadata": { "collapsed": false, + "scrolled": true, "slideshow": { "slide_type": "subslide" } @@ -175,12 +213,25 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* BDFL - **Guido van Rossum**\n", " * Benevolent Dictator For Life\n", - "* Centrum Wiskunde & Informatica – Amsterdam Hollandia\n", - "\n", + "* Centrum Wiskunde & Informatica – Amsterdam Hollandia" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ "![caption](files/L1_img/guido1.jpg)" ] }, @@ -262,7 +313,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "PEP - Python Enhancement Proposal - system dokumentów (podobna idea jak w RFC), zawierający pomysły na rozwój środowiska Python\n", "\n", @@ -276,7 +331,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -296,7 +355,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* podręczny kalkulator\n", "* piaskownica do testowania fragmentów kodu\n", @@ -318,7 +381,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -331,7 +398,7 @@ " if guess == number:\n", " print('Congratulations, you guessed it.')\n", " running = False # this causes the while loop to stop\n", - " #break # - but we can't use break here -> no else then \n", + " break # - but we can't use break here -> no else then \n", " elif guess < number:\n", " print('No, it is a little higher than that.')\n", " else:\n", @@ -356,7 +423,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Typowa pętla po liczbach:" ] @@ -365,7 +436,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -377,7 +452,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "W praktyce najczęściej iterujemy po elementach:" ] @@ -386,7 +465,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -396,7 +479,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "W takiej pętli nie mamy dostępu do indeksu elementu w liście, ale możemy taki uzyskać, odpowiednio mapując kolekcję za pomocą enumerate (generator):" ] @@ -405,7 +492,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -416,7 +507,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -477,7 +572,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -489,7 +588,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -502,7 +605,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -516,7 +623,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -528,7 +639,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -540,7 +655,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -551,15 +670,6 @@ "print(ll)" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": { @@ -575,7 +685,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -583,31 +697,40 @@ "print(t)" ] }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "`(137)` nie jest jednoelementową krotką. Jak ją stworzyć?" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ - "t = (137)\n", + "t = (137,)\n", "print(t)\n", "print(t[0])" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`(137)` nie jest jednoelementową krotką. Jak ją stworzyć?" - ] - }, { "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false, + "collapsed": true, + "scrolled": true, "slideshow": { "slide_type": "subslide" } @@ -622,7 +745,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -634,7 +761,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -646,7 +777,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -658,7 +793,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -680,16 +819,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -700,7 +834,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Ponieważ mamy krotki, w języku Python zamianę zmiennych wykonujemy z użyciem idiomu:" ] @@ -709,7 +847,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -720,7 +862,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "W innych językach musielibyśmy napisać:\n", " \n", @@ -742,7 +888,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ " +---+---+---+---+---+\n", " | H | e | l | l | o |\n", @@ -755,7 +905,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -767,7 +921,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -778,7 +936,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -789,7 +951,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -800,7 +966,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -811,7 +981,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -822,7 +996,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -844,7 +1022,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -860,7 +1042,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -872,7 +1058,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -884,7 +1074,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -895,7 +1089,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -907,7 +1105,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -918,7 +1120,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -929,7 +1135,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -940,7 +1150,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -951,7 +1165,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -972,7 +1190,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Kluczem (w skrócie) może być wszystko, co ma swoją reprezentację jako hash, a dokładniej:\n", "\n", @@ -983,7 +1205,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -997,7 +1223,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1011,7 +1241,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1035,7 +1269,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1047,7 +1285,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1059,7 +1301,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1081,7 +1327,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1095,7 +1345,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1106,7 +1360,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1117,7 +1375,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1128,7 +1390,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1150,7 +1416,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1163,14 +1433,18 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ "def say_even_more(*args, **kwargs):\n", - " print(args) #lista\n", + " print(args) #krotka\n", " print(kwargs) #mapa\n", - " \n", + "\n", "say_even_more(1, 2, 3, foo=4, bar=5)" ] }, @@ -1189,7 +1463,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1218,7 +1496,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1237,8 +1519,9 @@ "execution_count": null, "metadata": { "collapsed": false, + "scrolled": true, "slideshow": { - "slide_type": "subslide" + "slide_type": "fragment" } }, "outputs": [], @@ -1253,7 +1536,7 @@ "cell_type": "markdown", "metadata": { "slideshow": { - "slide_type": "subslide" + "slide_type": "slide" } }, "source": [ @@ -1264,7 +1547,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -1279,7 +1566,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -1294,7 +1585,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -1310,7 +1605,7 @@ "cell_type": "markdown", "metadata": { "slideshow": { - "slide_type": "subslide" + "slide_type": "slide" } }, "source": [ @@ -1330,7 +1625,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* Python, Groovy, JavaScript, Ruby są **dynamicznie typowalne (dynamic typing)**\n", " * Typ związany z wartością – nie zmienną\n" @@ -1340,7 +1639,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1387,7 +1690,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1428,7 +1735,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1449,7 +1760,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1462,7 +1777,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1488,21 +1807,33 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "### Wyrażenie import" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* Zmienna __name__ zawiera nazwę bieżącego pakietu" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ " #!/usr/bin/python\n", " # Filename: using_name.py\n", @@ -1515,7 +1846,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Przykładowe uruchomienia:\n", " \n", @@ -1530,7 +1865,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ " sound/ Top-level package\n", " __init__.py Initialize the sound package\n", @@ -1548,7 +1887,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "* **import**\n", " * dołącza plik z $PYTHONPATH: .:/usr/local/lib/python\n", @@ -1574,7 +1917,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* Kolekcja modułów (pakiet) znajduje się w katalogu\n", "* Katalog z modułem musi zawierać plik \\__init\\__.py\n", @@ -1583,7 +1930,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### dir()" ] @@ -1592,7 +1943,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1604,7 +1959,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -1615,7 +1974,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1626,7 +1989,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1637,7 +2004,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1648,7 +2019,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1659,7 +2034,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1671,7 +2050,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -1690,7 +2073,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1701,7 +2088,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1713,7 +2104,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1725,7 +2120,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1736,7 +2135,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1748,7 +2151,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -1759,7 +2166,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1770,7 +2181,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1781,7 +2196,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": true, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1792,18 +2211,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "dir()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false + "collapsed": false, + "scrolled": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1823,7 +2235,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* CPython - standardowa implementacja jest często w kontekście innych alternatywnych nazywana CPython\n", "\n", @@ -1840,6 +2256,7 @@ } ], "metadata": { + "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "language": "python", @@ -1855,7 +2272,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.3" + "version": "3.5.1" } }, "nbformat": 4, From c106849701b30c0f9e22ea0fab526012f9060c11 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Fri, 22 Jan 2016 17:41:46 +0100 Subject: [PATCH 02/22] Create README_RISE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pierwsza wersja instrukcji, narazie UNIX, Windows będzie jutro. Czy taki opis jest wystarczający, czy należy coś dodać/zmienić? --- README_RISE.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 README_RISE.md diff --git a/README_RISE.md b/README_RISE.md new file mode 100644 index 0000000..306164b --- /dev/null +++ b/README_RISE.md @@ -0,0 +1,55 @@ +#####Instrukcja instalacji wtyczki RISE służącej do obsługi interaktywnego pokazu slajdów + + +# UNIX + +1. Pobierz potrzebne pliki z repozytorium https://github.com/damianavila/RISE.git +``` +cd +git clone https://github.com/damianavila/RISE.git +``` + +2. Do instalacji należy wykorzystać skrypt `setup.py`, jednak wcześniej trzeba ustawić zmienną
+ JUPYTER_CONFIG_DIR dodając do pliku `~/.bashrc` następującą linię:
+ + `export JUPYTER_CONFIG_DIR="/.jupyter/:$JUPYTER_CONFIG_DIR"` + + Przydatna może być też zmienna JUPYTER_PATH: + + `export JUPYTER_PATH="/.local/share/jupyter/:$JUPYTER_PATH"` + +3. Użyj skryptu `setup.py` aby zainstalować wtyczkę + +``` +cd RISE/ +python setup.py install +``` + +Sprawdzenie instalacji: + +Po otwarciu w jupyter nootebook dowolnego wykładu w menu toolbar powinna pojawić
+się nowa ikona : "Enter/Exit Live Reveal Slideshow" (wygląda jak histogram)
+``` +cd +jupyter notebook LX.ipynb +``` + +## WAŻNE + +Aby uzyskać najlepszy efekt, należy zmienić domyślny rozmiar czcionki
+(inaczej niektóre slajdy nie mieszczą się na ekranie) + + +Żeby to zrobić, należy zmodyfikować następujący plik
+(Szablon używany w tych wykładach to 'simple')
+`/livereveal/reveal.js/css/theme/simple.css`
+ +W linii 19. parametr `font-size` powinien przyjmować wartość 16px:
+`font-size: 16px;` + + +Po wykonaniu powyższych czynności można cieszyć się interaktywnym pokazem slajdów.
+ +Przydatne linki:
+https://github.com/agh-glk/python-lecture
+https://github.com/damianavila/RISE From 10a071633a454b541552090e6ce263128baa51b3 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Fri, 22 Jan 2016 18:51:38 +0100 Subject: [PATCH 03/22] Update L2.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dodane metadane, kilka miejsc w tym wykładzie wymgaga jeszcze interwencji --- L2.ipynb | 2183 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 1834 insertions(+), 349 deletions(-) diff --git a/L2.ipynb b/L2.ipynb index eb677c2..1155ecc 100644 --- a/L2.ipynb +++ b/L2.ipynb @@ -2,21 +2,33 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "# Język Python - Wykład 2." ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## PEP 8 - Zasady formatowania kodu" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ " **,,code is read much more often than it is written''** (BDFL)\n", " \n", @@ -30,7 +42,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "* http://www.python.org/dev/peps/pep-0008/\n", "* 4 spacje na jedno wcięcie kodu \n", @@ -40,7 +56,17 @@ "* Dwie puste linie pomiędzy kodem klas\n", "* Maksymalna długość linii kodu to 79 znaków\n", "* Nie używać ``from import *`` - zatrucie przestrzeni nazw\n", - "* starać się nie używać zmiennych ``l`` (małe L, podobne do 1), ``O`` (duże o, podobne do zero), ``I`` (duże i, podobne do 1)\n", + "* starać się nie używać zmiennych ``l`` (małe L, podobne do 1), ``O`` (duże o, podobne do zero), ``I`` (duże i, podobne do 1)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ "* Znak spacji po znaku ``,`` w słownikach, zbiorach, listach, krotkach, argumentach oraz po znaku ``:`` w słownikach (nie przed!)\n", "\n", " Dobrze:\n", @@ -67,7 +93,17 @@ " a= 5\n", " a =5\n", " f(a = 5, b = 10)\n", - " f(a= 5, b= 10)\n", + " f(a= 5, b= 10)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ "\n", "* Bez spacji na brzegach nawiasowania i listy argumentów\n", "\n", @@ -100,14 +136,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Kilka słów o logicznych typach danych" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Do umieszczenia w repozytorium przed zwolnieniem się z firmy (za https://gist.github.com/aras-p/6224951)\n", " #define true ((rand()&15)!=15)\n", @@ -116,18 +160,33 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Słowa kluczowe - traktowane specjalnie przez parser" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']\n" + ] + } + ], "source": [ "from keyword import kwlist\n", "print(kwlist)" @@ -135,18 +194,34 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Nie można użyć słów kluczowych do nazywania zmiennych i funkcji" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (, line 1)", + "output_type": "error", + "traceback": [ + "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m for = 8\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" + ] + } + ], "source": [ "for = 8\n", "while = \"aaa\"" @@ -154,41 +229,85 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Wbudowane - typy, funkcje, wyjątki. Traktowane przez parser jak identyfikatory tworzone przez programistę. Można (o zgrozo) używać ich w przypisaniach." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'ZeroDivisionError', '__IPYTHON__', '__IPYTHON__active', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'dreload', 'enumerate', 'eval', 'exec', 'filter', 'float', 'format', 'frozenset', 'get_ipython', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']\n" + ] + } + ], "source": [ "print(dir(__builtins__))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "137" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "int = \"ojej\"\n", - "len = lambda x : 137" + "len = lambda x : 137\n", + "len([1, 3])" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "len([0,1,2,3])\n", "'True' in dir(__builtins__)" @@ -196,7 +315,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "* Porównania\n", "\n", @@ -208,11 +331,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " File \"\", line 1\n", + "SyntaxError: can't assign to keyword\n" + ] + } + ], "source": [ "%%python3\n", "True = 0" @@ -220,9 +355,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -232,11 +370,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The while loop is over.\n", + "Done\n" + ] + } + ], "source": [ "%%python2\n", "def guess(number=23):\n", @@ -246,7 +396,7 @@ " guess = int(raw_input('Enter an integer : '))\n", "\n", " if guess == number:\n", - " print 'Congratulations, you guessed it.'\n", + " print ('Congratulations, you guessed it.')\n", " running = False # this causes the while loop to stop\n", " elif guess < number:\n", " print('No, it is a little higher than that.')\n", @@ -257,24 +407,39 @@ " # Do anything else you want to do here\n", " print('Done')\n", "\n", - "#True = 0\n", + "True = 0\n", "guess()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Once deleted, variables cannot be recovered. Proceed (y/[n])? y\n" + ] + } + ], "source": [ "%reset" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Porównania:\n", "\n", @@ -287,36 +452,186 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Listy - zaawansowane użycie" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 33, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on class list in module builtins:\n", + "\n", + "class list(object)\n", + " | list() -> new empty list\n", + " | list(iterable) -> new list initialized from iterable's items\n", + " | \n", + " | Methods defined here:\n", + " | \n", + " | __add__(self, value, /)\n", + " | Return self+value.\n", + " | \n", + " | __contains__(self, key, /)\n", + " | Return key in self.\n", + " | \n", + " | __delitem__(self, key, /)\n", + " | Delete self[key].\n", + " | \n", + " | __eq__(self, value, /)\n", + " | Return self==value.\n", + " | \n", + " | __ge__(self, value, /)\n", + " | Return self>=value.\n", + " | \n", + " | __getattribute__(self, name, /)\n", + " | Return getattr(self, name).\n", + " | \n", + " | __getitem__(...)\n", + " | x.__getitem__(y) <==> x[y]\n", + " | \n", + " | __gt__(self, value, /)\n", + " | Return self>value.\n", + " | \n", + " | __iadd__(self, value, /)\n", + " | Implement self+=value.\n", + " | \n", + " | __imul__(self, value, /)\n", + " | Implement self*=value.\n", + " | \n", + " | __init__(self, /, *args, **kwargs)\n", + " | Initialize self. See help(type(self)) for accurate signature.\n", + " | \n", + " | __iter__(self, /)\n", + " | Implement iter(self).\n", + " | \n", + " | __le__(self, value, /)\n", + " | Return self<=value.\n", + " | \n", + " | __len__(self, /)\n", + " | Return len(self).\n", + " | \n", + " | __lt__(self, value, /)\n", + " | Return self None -- append object to end\n", + " | \n", + " | clear(...)\n", + " | L.clear() -> None -- remove all items from L\n", + " | \n", + " | copy(...)\n", + " | L.copy() -> list -- a shallow copy of L\n", + " | \n", + " | count(...)\n", + " | L.count(value) -> integer -- return number of occurrences of value\n", + " | \n", + " | extend(...)\n", + " | L.extend(iterable) -> None -- extend list by appending elements from the iterable\n", + " | \n", + " | index(...)\n", + " | L.index(value, [start, [stop]]) -> integer -- return first index of value.\n", + " | Raises ValueError if the value is not present.\n", + " | \n", + " | insert(...)\n", + " | L.insert(index, object) -- insert object before index\n", + " | \n", + " | pop(...)\n", + " | L.pop([index]) -> item -- remove and return item at index (default last).\n", + " | Raises IndexError if list is empty or index is out of range.\n", + " | \n", + " | remove(...)\n", + " | L.remove(value) -> None -- remove first occurrence of value.\n", + " | Raises ValueError if the value is not present.\n", + " | \n", + " | reverse(...)\n", + " | L.reverse() -- reverse *IN PLACE*\n", + " | \n", + " | sort(...)\n", + " | L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Data and other attributes defined here:\n", + " | \n", + " | __hash__ = None\n", + "\n" + ] + } + ], "source": [ "help(list)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Przedłużanie listy" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 2, 3, 4, 5, 6]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "extend_list = [1, 2, 3]\n", "extend_list.extend([4, 5, 6])\n", @@ -325,18 +640,36 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Usuwanie z listy" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 2, 4, 5, 6]" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "del extend_list[2]\n", "extend_list" @@ -344,11 +677,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 4, 5, 6]" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "del extend_list[1:3]\n", "extend_list" @@ -356,11 +703,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'extend_list' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mdel\u001b[0m \u001b[0mextend_list\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mextend_list\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'extend_list' is not defined" + ] + } + ], "source": [ "del extend_list\n", "print(extend_list)" @@ -368,18 +730,36 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "### Lista jako stos" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "7" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "stack = [3, 4, 5, 6, 7]\n", "stack.pop()" @@ -387,31 +767,62 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 49, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "stack.pop()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 42, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[3, 4, 5]" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "stack" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 45, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -420,36 +831,72 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 50, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[3, 4, 5]" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "stack" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Lista jako kolejka" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Listy można używać jak kolejki, ale operacje na początku listy są nieefektywne:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 51, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "queue = [3, 4, 5, 6, 7]\n", "queue.pop(0)" @@ -457,11 +904,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 52, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[4, 5, 6, 7, 10]" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "queue.append(10)\n", "queue" @@ -469,18 +930,36 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Zamiast tego lepiej użyć specjalnie do tego przeznaczonej struktury deque z modułu standardowego collections:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 53, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'Eric'" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from collections import deque\n", "queue = deque([\"Eric\", \"John\", \"Michael\"])\n", @@ -491,47 +970,97 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 54, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'John'" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "queue.popleft() # The second to arrive now leaves" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 55, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "deque(['Michael', 'Terry', 'Graham'])" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "queue # Remaining queue in order of arrival" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "### List comprehension" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Rozwijanie listy jest idiomem zastępujacym wyrażenia pętli for budującej listę:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 56, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "squares = []\n", "for x in range(10):\n", @@ -542,54 +1071,117 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "To samo można zapisać prościej:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 57, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "[x**2 for x in range(10)]" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Można też tworzyć pętle zagnieżdzone i używać konstrukcji warunkowych:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 58, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "[(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Trójki pitagorejskie" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 59, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[(3, 4, 5),\n", + " (5, 12, 13),\n", + " (6, 8, 10),\n", + " (7, 24, 25),\n", + " (8, 15, 17),\n", + " (9, 12, 15),\n", + " (10, 24, 26),\n", + " (12, 16, 20),\n", + " (15, 20, 25),\n", + " (20, 21, 29)]" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "n = 30\n", "[(x,y,z) for x in range(1,n) for y in range(x,n) for z in range(y,n) if x**2 + y**2 == z**2]" @@ -597,11 +1189,33 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 60, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('THE', 'the', 3),\n", + " ('QUICK', 'quick', 5),\n", + " ('BROWN', 'brown', 5),\n", + " ('FOX', 'fox', 3),\n", + " ('JUMPS', 'jumps', 5),\n", + " ('OVER', 'over', 4),\n", + " ('THE', 'the', 3),\n", + " ('LAZY', 'lazy', 4),\n", + " ('DOG', 'dog', 3)]" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "words = 'The quick brown fox jumps over the lazy dog'.split()\n", "[(w.upper(), w.lower(), len(w)) for w in words]" @@ -609,73 +1223,126 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ - "Set comprehension" + "### Set comprehension" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 61, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "({0, 1, 4, 9, 16, 25, 36, 49, 64, 81},\n", + " {0, 1, 8, 27, 64, 125, 216, 343, 512, 729},\n", + " {0, 1, 64})" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a = { x**2 for x in range(10)}\n", "b = { x**3 for x in range(10)}\n", "a,b,a&b" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Dictionary comprehension" - ] - }, { "cell_type": "code", - "execution_count": null, + "execution_count": 63, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'ala', 'kota', 'ma'}" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "mcase = {'a':10, 'b': 34, 'A': 7, 'Z':3}\n", - "mcase_frequency = { k.lower() : mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys() }\n", - "mcase_frequency" + "new_set = {i for i in ['ala', 'ma', 'kota', 'kota']}\n", + "new_set" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ - "## Set comprehension" + "### Dictionary comprehension" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 62, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'a': 17, 'b': 34, 'z': 3}" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "new_set = {i for i in ['ala', 'ma', 'kota', 'kota']}\n", - "new_set" + "mcase = {'a':10, 'b': 34, 'A': 7, 'Z':3}\n", + "mcase_frequency = { k.lower() : mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys() }\n", + "mcase_frequency" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Lambda wyrażenia" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* Funkcja nienazwana utworzona w miejscu (anonimowa)\n", "* Można ją przypisać do zmiennej \n", @@ -686,22 +1353,50 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 64, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + ">" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "lambda x: x + 1" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 65, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "operator_dodaj = lambda x, y: x + y\n", "operator_dodaj(1, 2)" @@ -709,22 +1404,51 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 69, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'big'" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "lambda x: \"big\" if x > 100 else \"small\"" + "tell = lambda x: \"big\" if x > 100 else \"small\"\n", + "tell(1332)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 70, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'bla bla bli blu blurp'" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "f = lambda s : \" \".join(s.split())\n", "text = '''bla bla\n", @@ -736,44 +1460,84 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "### Sortowanie" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Sortowanie przez tworzenie nowej listy:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 77, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sta (5, 2, 3, 1, 4) \n", + "nowa [1, 2, 3, 4, 5] \n" + ] + } + ], "source": [ - "(5, 2, 3, 1, 4)\n", - "sorted(sta)" + "sta = (5, 2, 3, 1, 4)\n", + "nowa = sorted(sta)\n", + "print('sta ', sta, type(sta) )\n", + "print ('nowa ', nowa, type(nowa))\n" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Sortowanie w miejscu:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 78, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[5, 4, 3, 2, 1]" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a = [5, 2, 3, 1, 4]\n", "a.sort(reverse=True)\n", @@ -782,18 +1546,36 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Sortowaniem z użyciem klucza:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 79, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[('apple', 3), ('banana', 2), ('orange', 1)]" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "fruits = [('apple', 3), ('orange', 1), ('banana', 2)]\n", "sorted(fruits, key=lambda fruit: fruit[0])" @@ -801,29 +1583,61 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 80, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[('orange', 1), ('banana', 2), ('apple', 3)]" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sorted(fruits, key=lambda fruit: fruit[1])" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Kluczem może być nawet callable, który go wygeneruje:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 81, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['A', 'C', 'Z', 'a', 'c', 'z']" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "chars = ['Z', 'z', 'C', 'c', 'A', 'a']\n", "sorted(chars)" @@ -831,29 +1645,61 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 82, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['A', 'a', 'C', 'c', 'Z', 'z']" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sorted(chars, key=str.lower)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Python implementuje stabilne sortowanie:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 83, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from operator import itemgetter\n", "sorted([('red', 1), ('blue', 1), ('red', 2), ('blue', 2)], key=itemgetter(1))" @@ -861,14 +1707,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Programowanie funkcyjne" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* filter - filtrowanie kolekcji\n", "* map - zmiana formatu kolekcji\n", @@ -877,18 +1731,36 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Policzyć, ile owoców wspólnie mają Merry i Tom:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 84, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "dict_items([('John', [('berries', 1), ('orange', 10)]), ('Merry', [('apple', 5), ('orange', 3)]), ('Tom', [('peaches', 2)])])" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "fruits = {\n", " 'Merry': [\n", @@ -908,18 +1780,36 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Filtrujemy \"bazę\" z owoców Johna:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 85, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[('Merry', [('apple', 5), ('orange', 3)]), ('Tom', [('peaches', 2)])]" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "f = filter(lambda x: x[0] in ['Merry', 'Tom'], fruits.items())\n", "[it for it in f]" @@ -927,18 +1817,36 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Usuwamy imiona, nie są nam już potrzebne:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 86, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[[('apple', 5), ('orange', 3)], [('peaches', 2)]]" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "mapa1 = map(lambda y: y[1], \n", " filter(lambda x: x[0] in ['Merry', 'Tom'], fruits.items())\n", @@ -948,36 +1856,72 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Alternatywnie" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 87, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[[('apple', 5), ('orange', 3)], [('peaches', 2)]]" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "[item[1] for item in fruits.items() if item[0] in {'Merry','Tom'}]" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Sklejamy listę list w jedną listę:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 88, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[('apple', 5), ('orange', 3), ('peaches', 2)]" + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from itertools import chain\n", "list(chain(\n", @@ -989,29 +1933,61 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 89, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[('apple', 5), ('orange', 3), ('peaches', 2)]" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "list(chain(*[item[1] for item in fruits.items() if item[0] in {'Merry','Tom'}]))" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Mapujemy listę tupli na listę liczb" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 90, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[5, 3, 2]" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "mapa2 = map(lambda f: f[1], \n", " chain(\n", @@ -1025,18 +2001,36 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Finalnie redukujemy listę do sumy elementów:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 91, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sum( \n", " map(lambda f: f[1], \n", @@ -1051,29 +2045,61 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 92, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sum(it[1] for it in chain(*[item[1] for item in fruits.items() if item[0] in {'Merry','Tom'}]))" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Możemy także użyć gotowego operatora dodawania z modułu operator:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 93, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import operator\n", "import functools\n", @@ -1090,25 +2116,49 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Słowniki (dict) - zaawansowane użycie" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Aktualizacja słownika innym słownikiem:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 97, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'apple': 1, 'peach': 3, 'orange': 2}\n", + "False\n", + "{'apple': 10, 'peach': 3, 'orange': 2}\n", + "False\n", + "{'apple': 1, 'banana': 4, 'peach': 3, 'orange': 2}\n", + "True\n" + ] + } + ], "source": [ "def some_function(**kwargs):\n", " defaults = {\n", @@ -1127,18 +2177,36 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Dict Comprehension" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 98, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "new_dict = {key: value for key, value in [('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')]}\n", "new_dict" @@ -1146,14 +2214,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Generatory i iteratory" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* Generatorów i iteratorów używamy, aby oszczędzić pamięć (a także czas potrzebny na jej alokację). \n", "* Zysk wydajności powstaje przez ominięcie potrzeby tworzenia tymczasowych struktur pośrednich w pamięci, gdy zamiast tego możemy przeiterować kolejno po elementach i finalnie zapisać tylko te, które są potrzebne.\n", @@ -1169,16 +2245,23 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Iteratory" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1187,11 +2270,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# czy obiekt l (lista) ma atrybut __iter__ ?\n", "'__iter__' in dir(l)" @@ -1199,11 +2296,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "list_iterator" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# pobieramy iterator\n", "it = iter(l) \n", @@ -1213,11 +2324,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "ename": "StopIteration", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mStopIteration\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# iterujemy\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mnext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mit\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;31m# it.__next__() # alternatywnie\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mStopIteration\u001b[0m: " + ] + } + ], "source": [ "# iterujemy\n", "next(it)\n", @@ -1226,11 +2352,56 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 11, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['__class__',\n", + " '__contains__',\n", + " '__delattr__',\n", + " '__dir__',\n", + " '__doc__',\n", + " '__eq__',\n", + " '__format__',\n", + " '__ge__',\n", + " '__getattribute__',\n", + " '__getitem__',\n", + " '__gt__',\n", + " '__hash__',\n", + " '__init__',\n", + " '__iter__',\n", + " '__le__',\n", + " '__len__',\n", + " '__lt__',\n", + " '__ne__',\n", + " '__new__',\n", + " '__reduce__',\n", + " '__reduce_ex__',\n", + " '__repr__',\n", + " '__reversed__',\n", + " '__setattr__',\n", + " '__sizeof__',\n", + " '__str__',\n", + " '__subclasshook__',\n", + " 'count',\n", + " 'index',\n", + " 'start',\n", + " 'step',\n", + " 'stop']" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "r = range(10)\n", "dir(r)" @@ -1238,11 +2409,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "range_iterator" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "it = iter(r)\n", "type(it)" @@ -1250,85 +2435,201 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "next(it)" ] }, { "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Generator expression" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Generator można także wyrazić za pomocą konstrukcji ``(wyrażenie for zmienne in sekwencja)``:" - ] - }, - { - "cell_type": "code", - "execution_count": null, "metadata": { - "collapsed": false + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], "source": [ - "g = (i*i for i in range(10))" + "### Generator expression" ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { - "collapsed": false + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], "source": [ - "type(g)" + "Generator można także wyrazić za pomocą konstrukcji ``(wyrażenie for zmienne in sekwencja)``:" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 18, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "g = (i*i for i in range(10))\n", + "h = tuple([i*i for i in range(10)])" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "text/plain": [ + "tuple" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(type(g))\n", + "type(h)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['__class__',\n", + " '__del__',\n", + " '__delattr__',\n", + " '__dir__',\n", + " '__doc__',\n", + " '__eq__',\n", + " '__format__',\n", + " '__ge__',\n", + " '__getattribute__',\n", + " '__gt__',\n", + " '__hash__',\n", + " '__init__',\n", + " '__iter__',\n", + " '__le__',\n", + " '__lt__',\n", + " '__name__',\n", + " '__ne__',\n", + " '__new__',\n", + " '__next__',\n", + " '__qualname__',\n", + " '__reduce__',\n", + " '__reduce_ex__',\n", + " '__repr__',\n", + " '__setattr__',\n", + " '__sizeof__',\n", + " '__str__',\n", + " '__subclasshook__',\n", + " 'close',\n", + " 'gi_code',\n", + " 'gi_frame',\n", + " 'gi_running',\n", + " 'gi_yieldfrom',\n", + " 'send',\n", + " 'throw']" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "dir(g)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "16" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "next(g)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### metoda ``yield``" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1343,20 +2644,37 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "fib()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 46, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1365,72 +2683,144 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 44, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "next(it)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 47, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "list(it)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "### List comprehension (jeszcze raz)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Technicznie więc ujmując **list comprehension = lista + wyrażenie generatora**:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 151, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" + ] + }, + "execution_count": 151, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "[i*i for i in range(10)]" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "### Moduł itertools" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Szczególnie wart uwagi jest moduł itertools, który dostarcza bardzo wiele ciekawych narzędzi pracujących na iteratorach, pomocnych przy zaawansowanym programowaniu funkcyjnym. Wybrane ciekawe funkcje:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 152, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 2, 3, 4, 5, 6]" + ] + }, + "execution_count": 152, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from itertools import * # normalnie tak nie importujemy \n", "list(chain([1, 2, 3], [4, 5, 6]))" @@ -1438,55 +2828,144 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 153, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]" + ] + }, + "execution_count": 153, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "list(combinations('ABCD', 2))" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 154, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('A', 'B'),\n", + " ('A', 'C'),\n", + " ('A', 'D'),\n", + " ('B', 'A'),\n", + " ('B', 'C'),\n", + " ('B', 'D'),\n", + " ('C', 'A'),\n", + " ('C', 'B'),\n", + " ('C', 'D'),\n", + " ('D', 'A'),\n", + " ('D', 'B'),\n", + " ('D', 'C')]" + ] + }, + "execution_count": 154, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "list(permutations('ABCD', 2))" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 155, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[('A', 'A'),\n", + " ('A', 'B'),\n", + " ('A', 'C'),\n", + " ('A', 'D'),\n", + " ('B', 'B'),\n", + " ('B', 'C'),\n", + " ('B', 'D'),\n", + " ('C', 'C'),\n", + " ('C', 'D'),\n", + " ('D', 'D')]" + ] + }, + "execution_count": 155, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "list(combinations_with_replacement('ABCD', 2))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 156, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[('A', 'X'), ('A', 'Y'), ('B', 'X'), ('B', 'Y'), ('C', 'X'), ('C', 'Y')]" + ] + }, + "execution_count": 156, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "list(product('ABC', 'XY'))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 157, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]\n", + "[]\n" + ] + } + ], "source": [ "iterator = permutations('ABC', 2)\n", "print(iterator)\n", @@ -1496,11 +2975,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 158, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " \n", + "[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]\n", + "[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]\n", + "[]\n" + ] + } + ], "source": [ "iterator = permutations('ABC', 2)\n", "iterator1, iterator2 = tee(iterator, 2)\n", @@ -1509,18 +3002,10 @@ "print(list(iterator2))\n", "print(list(iterator))\n" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { + "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "language": "python", @@ -1536,7 +3021,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.3" + "version": "3.5.1" } }, "nbformat": 4, From e16d067b64f2ed72ff1b37c679f00a3727c72a7d Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 23 Jan 2016 13:07:41 +0100 Subject: [PATCH 04/22] Update README_RISE.md Drobne poprawki --- README_RISE.md | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/README_RISE.md b/README_RISE.md index 306164b..9eaebe0 100644 --- a/README_RISE.md +++ b/README_RISE.md @@ -1,16 +1,21 @@ -#####Instrukcja instalacji wtyczki RISE służącej do obsługi interaktywnego pokazu slajdów +#####Instrukcja instalacji wtyczki RISE służącej do obsługi interaktywnego pokazu slajdów
+Konfigurację przeprowadzono z wykorzystaniem Pythona w wersji 3.5.1.
+Wszelnie uwagi na temat instalacji RISE pod Pythonem 2.X mile widziane
+W zależności od wersji IPythona należy pobrać repozytorium z odpowiedniej gałęzi:
+https://github.com/damianavila/RISE/releases # UNIX -1. Pobierz potrzebne pliki z repozytorium https://github.com/damianavila/RISE.git -``` -cd -git clone https://github.com/damianavila/RISE.git -``` - +1. Pobierz potrzebne pliki z repozytorium https://github.com/damianavila/RISE.git
+ ``` + cd + git clone https://github.com/damianavila/RISE.git + ``` + 2. Do instalacji należy wykorzystać skrypt `setup.py`, jednak wcześniej trzeba ustawić zmienną
- JUPYTER_CONFIG_DIR dodając do pliku `~/.bashrc` następującą linię:
+ JUPYTER_CONFIG_DIR dodając do pliku `~/.bashrc` następującą linię:

+ UWAGA - alternatywnie można wykonać kroki opisane w podpunkcie 3.
`export JUPYTER_CONFIG_DIR="/.jupyter/:$JUPYTER_CONFIG_DIR"` @@ -18,7 +23,11 @@ git clone https://github.com/damianavila/RISE.git `export JUPYTER_PATH="/.local/share/jupyter/:$JUPYTER_PATH"` -3. Użyj skryptu `setup.py` aby zainstalować wtyczkę +3. Zamiast ustawiać zmienną JUPYTER_CONFIG_DIR, można uruchomić instalację poleceniem
+`JUPYTER_CONFIG_DIR= python setup.py install`
+Efekt powiniene być ten sam, naturalnie korzystając z tego rozwiązania należy pominąć punkt 4. + +4. Użyj skryptu `setup.py` aby zainstalować wtyczkę ``` cd RISE/ @@ -30,7 +39,7 @@ Sprawdzenie instalacji: Po otwarciu w jupyter nootebook dowolnego wykładu w menu toolbar powinna pojawić
się nowa ikona : "Enter/Exit Live Reveal Slideshow" (wygląda jak histogram)
``` -cd +cd jupyter notebook LX.ipynb ``` @@ -42,14 +51,18 @@ Aby uzyskać najlepszy efekt, należy zmienić domyślny rozmiar czcionki
Żeby to zrobić, należy zmodyfikować następujący plik
(Szablon używany w tych wykładach to 'simple')
-`/livereveal/reveal.js/css/theme/simple.css`
+`/livereveal/reveal.js/css/theme/simple.css`

+ W linii 19. parametr `font-size` powinien przyjmować wartość 16px:
`font-size: 16px;` +Jeżeli w użyciu byłby inny szablon, należy znaleść go w folderze /theme
+i odpowiednio zmodyfikować wartość `font-size` Po wykonaniu powyższych czynności można cieszyć się interaktywnym pokazem slajdów.
Przydatne linki:
https://github.com/agh-glk/python-lecture
-https://github.com/damianavila/RISE +https://github.com/damianavila/RISE
+https://github.com/damianavila/RISE/releases From 1fca4e1fce33d4bd28e04d71b4968d671eb11cb0 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 23 Jan 2016 13:21:30 +0100 Subject: [PATCH 05/22] Update README.md Dodano informacje o instalacji RISE. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 2745b21..7d616b0 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,11 @@ Jeśli powyższa komenda nie działa, spróbuj Po wykonaniu powyższych czynności, w przeglądarce pod adresem `http://localhost:8888/` powinien odpowiadać IPython Notebook. +### RISE + +Po wykonaniu powyższych czynności można przeglądać zeszyty oraz interaktywnie wykonywać kod.
+Instalacja wtyczki RISE umożliwia przeglądanie wykładów w postaci interaktywnego pokazu slajdów.
+Opis instalacji tego dodatku znajduje się w pliku README_RISE.md
### Poprawki zauważonych błędów From e88e0f3f3549e3a872c6120c2d686b15140d7e54 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 23 Jan 2016 13:34:43 +0100 Subject: [PATCH 06/22] Update L3.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dodane metadatane umożliwiające interaktywny pokaz slajdów --- L3.ipynb | 812 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 658 insertions(+), 154 deletions(-) diff --git a/L3.ipynb b/L3.ipynb index 2e426e5..9dad053 100644 --- a/L3.ipynb +++ b/L3.ipynb @@ -2,37 +2,56 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "# Język Python - Wykład 3" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Closures (Domknięcia)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "#### Domknięcie - funkcja wraz z otoczeniem referencyjnym (wszystkie zmienne z czasu utworzenia) - dostępne nawet po opuszczeniu otoczenia leksykalnego" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Funkcje zagnieżdzone:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -45,27 +64,45 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "137\n" + ] + } + ], "source": [ "outer()" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Funkcje jako obiekty" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -77,27 +114,48 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "4" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "apply(add,2,2)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Domknięcia" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -111,31 +169,60 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "id(n): 7F35CAF33700\n", + "id(nth_power): 7F35B9B77EA0\n" + ] + } + ], "source": [ "raised_to_4 = generate_power_func(4)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'.nth_power at 0x7f35b9b77ea0>'" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "repr(raised_to_4)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -144,49 +231,99 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'generate_power_func' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mgenerate_power_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mNameError\u001b[0m: name 'generate_power_func' is not defined" + ] + } + ], "source": [ "generate_power_func(1)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "81" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "raised_to_4(2)" + "raised_to_4(3)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "4" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "raised_to_4.__closure__[0].cell_contents" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Domkniecia c.d." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -203,25 +340,46 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "outer pre 137\n", + "inner 137\n", + "outer post 0\n" + ] + } + ], "source": [ "outer()" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "### Domknięcie w Groovy" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ " def localMethod() {\n", " def localVariable = new java.util.Date()\n", @@ -232,14 +390,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Domknięcie w JavaScript" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ " function createMarker(point, number) {\n", " var marker = new GMarker(point);\n", @@ -256,16 +422,23 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Dekoratory" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -278,9 +451,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -290,20 +466,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Just a simple method printing 1.\n" + ] + } + ], "source": [ "f(1)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -312,20 +502,35 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "But now, I am enhanced\n", + "Just a simple method printing 1.\n" + ] + } + ], "source": [ "f(1)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -336,20 +541,35 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "But now, I am enhanced\n", + "Another simple method printing 2.\n" + ] + } + ], "source": [ "g(2)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -362,9 +582,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -376,18 +599,35 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "But now, I am very enhanced\n", + "But now, I am enhanced\n", + "So simple method printing 3.\n" + ] + } + ], "source": [ "h(3)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ " #Example ...\n", " @synchronized\n", @@ -398,25 +638,47 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Ciąg dalszy nastąpi za chwilę..." ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Obiektowość" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'hello world'" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "class MyClass:\n", " \n", @@ -435,22 +697,44 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12345\n" + ] + } + ], "source": [ "print(MyClass.i)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12345\n" + ] + } + ], "source": [ "m2 = MyClass()\n", "print(m2.i)" @@ -458,11 +742,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12344 12345 12345\n" + ] + } + ], "source": [ "#podstawienie\n", "m.i -= 1\n", @@ -471,11 +766,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "\n", + "2\n", + "4\n", + "\n" + ] + } + ], "source": [ "class MyClass(object):\n", " \n", @@ -502,11 +812,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "1\n", + "\n", + "2\n", + "\n" + ] + } + ], "source": [ "class MyClass(object):\n", " \n", @@ -534,9 +859,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -553,25 +881,45 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Nie ma pól i metod prywatnych, ale..." ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "### Pola zaczynające się od „__” mają nazwę zmienioną" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['_MyClass__n', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']\n", + "12345\n" + ] + } + ], "source": [ "class MyClass:\n", " \n", @@ -585,14 +933,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Metody Specjalne (wprowadzenie)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, "source": [ " __init__ - konstruktor\n", " __del__ - destruktor (nie korzystamy - bo garbage collector jest nieprzewidywalny)\n", @@ -603,9 +959,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -623,11 +982,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "\n", + "Looking for m\n", + "0\n" + ] + } + ], "source": [ "a = MyClass()\n", "\n", @@ -640,11 +1013,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'__dict__': , '__module__': '__main__', '__doc__': ' To jest docstring ', '__getattr__': , '__init__': , '__weakref__': }\n", + "\n", + "{'n': 1}\n" + ] + } + ], "source": [ "print(MyClass.__dict__)\n", "\n", @@ -655,11 +1041,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n", + "\n", + "17\n" + ] + } + ], "source": [ "class Borg:\n", "\n", @@ -680,9 +1079,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -704,11 +1106,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Setting n at 1\n", + "Looking for n\n", + "0\n", + "Looking for m\n", + "0\n", + "\n", + "Setting n at 3\n", + "Setting m at 2\n" + ] + } + ], "source": [ "a = MyClass()\n", "\n", @@ -723,9 +1143,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -749,11 +1172,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + } + ], "source": [ "c = C()\n", "\n", @@ -762,16 +1196,23 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Dekoratory, c.d." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -785,11 +1226,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 42, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Entering func1\n", + "inside func1()\n", + "Exited func1\n" + ] + } + ], "source": [ "@entryExit\n", "def func1():\n", @@ -799,9 +1253,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 43, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -825,31 +1282,61 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 44, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "__main__.entryExit" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(func1)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 56, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Entering func1 12 times\n", + "inside func1()\n", + "Exited func1\n" + ] + } + ], "source": [ "func1()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 57, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -868,11 +1355,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 59, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10\n" + ] + } + ], "source": [ "@Decorator(\"decorated class\")\n", "class TestClass(object):\n", @@ -887,26 +1385,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 60, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'decorated class'" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t.classattr" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [] } ], "metadata": { + "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "language": "python", @@ -922,7 +1426,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.3" + "version": "3.5.1" } }, "nbformat": 4, From 5ea378b3ec3e11b12f5ac071231c391e135e6b92 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 23 Jan 2016 13:48:16 +0100 Subject: [PATCH 07/22] Update L4.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Metadane do obsługi pokazu slajdów --- L4.ipynb | 6376 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 6157 insertions(+), 219 deletions(-) diff --git a/L4.ipynb b/L4.ipynb index e64e84d..98aeaee 100644 --- a/L4.ipynb +++ b/L4.ipynb @@ -2,21 +2,33 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "# Język Python - Wykład 4." ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Context Manager " ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Problem:\n", " \n", @@ -27,7 +39,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Rozwiązanie 1.\n", "\n", @@ -40,7 +56,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Rozwiązanie 2.\n", "\n", @@ -59,7 +79,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Rozwiązanie 3.\n", "\n", @@ -76,7 +100,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Rozwiązanie 4.\n", "\n", @@ -93,7 +121,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ " with expression [as (targets)]:\n", " code block with context of \"targets\"\n", @@ -109,11 +141,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"cells\": [\n", + " {\n", + " \"cell_type\": \"markdown\",\n", + " \"\n" + ] + } + ], "source": [ "with open('L4.ipynb') as notebook:\n", " print(notebook.read(50))" @@ -121,18 +168,36 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "<_io.TextIOWrapper name='L4.ipynb' mode='r' encoding='UTF-8'>" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "notebook" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Konstrukcja:\n", "\n", @@ -163,11 +228,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Context prepared\n", + "Hello None\n", + "Context closed None None None\n" + ] + } + ], "source": [ "class MyContextManager():\n", " \n", @@ -184,11 +262,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Context prepared\n", + "Context closed \n" + ] + }, + { + "ename": "Exception", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mMyContextManager\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 12\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mException\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mException\u001b[0m: " + ] + } + ], "source": [ "class MyContextManager():\n", " \n", @@ -206,18 +307,39 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "### Context manager z użyciem dekoratora" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "

\n", + "foo\n", + "

\n", + "\n", + "
\n", + "foo\n", + "
\n" + ] + } + ], "source": [ "from contextlib import contextmanager\n", "\n", @@ -238,18 +360,33 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Przykład z tymczasowym folderem (za http://stackoverflow.com/questions/3012488/what-is-the-python-with-statement-designed-for)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "doing sth with /tmp/tmpv3i4oywk.temp\n" + ] + } + ], "source": [ "from tempfile import mkdtemp\n", "from shutil import rmtree\n", @@ -270,25 +407,46 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Metody specjalne c.d." ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### ``__repr__`` - the “official” string representation of an object" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[<__main__.T object at 0x7f7900120198>, <__main__.T object at 0x7f79001201d0>, <__main__.T object at 0x7f7900120128>]\n", + "<__main__.T object at 0x7f7900120160>\n", + "<__main__.T object at 0x7f79001201d0>\n" + ] + } + ], "source": [ "class T:\n", " pass\n", @@ -300,11 +458,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[T class, T class, T class]\n", + "T class\n", + "T class\n" + ] + } + ], "source": [ "class T:\n", " def __repr__(self):\n", @@ -317,18 +488,35 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### ``__str__`` - the “informal” or nicely printable string representation of an object." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Porsche 911 (3.6 L)\n", + "<__main__.Car object at 0x7f79000abcc0>\n", + "Porsche 911 (3.6 L)\n" + ] + } + ], "source": [ "class Car:\n", " def __init__(self, vendor, model, ccm):\n", @@ -346,25 +534,5113 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "W przypadku, gdy metoda __str__ nie jest zdefiniowana, wywoływana jest metoda __repr__" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### ``__hash__`` - (Hash values are integers. They are used to quickly compare dictionary keys during a dictionary lookup)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "comparing to 1 1\n", + "comparing to 1 2\n", + "comparing to 1 2\n", + "comparing to 1 3\n", + "comparing to 1 3\n", + "comparing to 1 3\n", + "comparing to 1 4\n", + "comparing to 1 4\n", + "comparing to 1 4\n", + "comparing to 1 4\n", + "comparing to 1 5\n", + "comparing to 1 5\n", + "comparing to 1 5\n", + "comparing to 1 5\n", + "comparing to 1 5\n", + "comparing to 1 6\n", + "comparing to 1 6\n", + "comparing to 1 6\n", + "comparing to 1 6\n", + "comparing to 1 6\n", + "comparing to 1 6\n", + "comparing to 1 7\n", + "comparing to 1 7\n", + "comparing to 1 7\n", + "comparing to 1 7\n", + "comparing to 1 7\n", + "comparing to 1 7\n", + "comparing to 1 7\n", + "comparing to 1 7\n", + "comparing to 1 8\n", + "comparing to 1 8\n", + "comparing to 1 8\n", + "comparing to 1 8\n", + "comparing to 1 8\n", + "comparing to 1 8\n", + "comparing to 1 8\n", + "comparing to 1 8\n", + "comparing to 1 8\n", + "comparing to 1 9\n", + "comparing to 1 9\n", + "comparing to 1 9\n", + "comparing to 1 9\n", + "comparing to 1 9\n", + "comparing to 1 9\n", + "comparing to 1 9\n", + "comparing to 1 9\n", + "comparing to 1 9\n", + "comparing to 1 9\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 11\n", + "comparing to 1 11\n", + "comparing to 1 11\n", + "comparing to 1 11\n", + "comparing to 1 11\n", + "comparing to 1 11\n", + "comparing to 1 11\n", + "comparing to 1 11\n", + "comparing to 1 11\n", + "comparing to 1 11\n", + "comparing to 1 11\n", + "comparing to 1 11\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 12\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 13\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 14\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 15\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 16\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 17\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 18\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 19\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 20\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 21\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 22\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 23\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 24\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 25\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 26\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 27\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 28\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 29\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 30\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 31\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 32\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 33\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 34\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 35\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 36\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 37\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 38\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 39\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 40\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 41\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 42\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 43\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 44\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 45\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 46\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 47\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 48\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 49\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 50\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 51\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 52\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 53\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 54\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 55\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 56\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 57\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 58\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 59\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 60\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 61\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 62\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 63\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 64\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 65\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 66\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 67\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 68\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 69\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 70\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 71\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 72\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 73\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 74\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 75\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 76\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 77\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 78\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 79\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 80\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 81\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 82\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 83\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 84\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 85\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 86\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 87\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 88\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 89\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 90\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 91\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 92\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 93\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 94\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 95\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 96\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 97\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 98\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 99\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n", + "comparing to 1 10\n" + ] + }, + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "class T:\n", " def __init__(self,x,y):\n", @@ -375,7 +5651,7 @@ " return str(self.x)+\" \"+str(self.y)\n", " \n", " def __eq__(self,other):\n", - " print(\"comparing to\" + str(other))\n", + " print(\"comparing to \" + str(other))\n", " return self.x == other.x and self.y == other.y\n", " \n", " def __hash__(self):\n", @@ -387,62 +5663,133 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### ``__bool__`` - Called to implement truth value testing and the built-in operation" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bool(None)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bool(0)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bool([1,3,4])" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bool(\"\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n" + ] + } + ], "source": [ "class T:\n", " def __len__(self):\n", @@ -452,11 +5799,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "140157668844768\n", + "False\n" + ] + } + ], "source": [ "class T:\n", " def __bool__(self):\n", @@ -470,18 +5829,36 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### ``__class__`` - klasa, do której należy instancja" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "int" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "x = 5\n", "x.__class__" @@ -489,40 +5866,84 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "int" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(x)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "type" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(int)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Emulacja typu kontenera (cd..)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "True\n" + ] + } + ], "source": [ "class T():\n", " \n", @@ -545,40 +5966,86 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "iter(t)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 2, 3]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "list(iter(t))" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Porównanie" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# czy jest to ta sama wartość?\n", "a = 100000\n", @@ -588,11 +6055,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# czy jest to ten sam obiekt?\n", "a = 100000\n", @@ -602,11 +6083,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(True, True)" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# pułapki optymalizacji CPythona\n", "a = 1\n", @@ -616,11 +6111,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(False, True)" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# porównanie w przypadku klas\n", "class T:\n", @@ -633,11 +6142,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# porównanie w przypadku klas\n", "class T:\n", @@ -650,16 +6173,23 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Atrybuty" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -677,11 +6207,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "140157668845328 140157668843704\n", + "18062664 18062664\n" + ] + }, + { + "data": { + "text/plain": [ + "'0xb67e144c'" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "door1 = Door(1, 'closed')\n", "door2 = Door(1, 'closed')\n", @@ -692,9 +6244,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -714,9 +6269,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -726,53 +6284,109 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "140157671496760 140157671496760 140157671496760\n" + ] + } + ], "source": [ "print(id(Door.colour),id(door1.colour),id(door2.colour))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "('brown', 'brown', 'brown')" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "Door.colour, door1.colour, door2.colour" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "mappingproxy({'__init__': , '__dict__': , '__module__': '__main__', 'open': , '__weakref__': , 'colour': 'brown', 'close': , '__doc__': None})" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "Door.__dict__" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'number': 1, 'status': 'closed'}" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "door1.__dict__" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -781,49 +6395,98 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "Door.open" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + ">" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "door1.open" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + ">" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "door1.__class__.__dict__['open'].__get__(door1)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Dziedziczenie i MRO" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -833,9 +6496,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 42, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -844,77 +6510,174 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 43, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'number': 1, 'status': 'closed'}" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sdoor.__dict__" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 44, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "mappingproxy({'__module__': '__main__', '__doc__': None})" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "SecurityDoor.__dict__" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 45, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(__main__.Door,)" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "SecurityDoor.__bases__" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 46, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + ">" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sdoor.open" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 47, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "ename": "KeyError", + "evalue": "'open'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0msdoor\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__class__\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__dict__\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'open'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__get__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msdoor\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mKeyError\u001b[0m: 'open'" + ] + } + ], "source": [ "sdoor.__class__.__dict__['open'].__get__(sdoor)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 48, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + ">" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sdoor.__class__.__bases__[0].__dict__['open'].__get__(sdoor)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 51, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "B1\n", + "(, , , , )\n" + ] + } + ], "source": [ "class A:\n", " def foo(self):\n", @@ -932,9 +6695,9 @@ " def moo(self):\n", " pass\n", "class C(B1,B2):\n", - "# def foo(self):\n", - "# print(\"C\")\n", - " pass\n", + "# def foo(self):\n", + "# print(\"C\")\n", + " pass\n", "oc = C()\n", "oc.foo()\n", "print(C.__mro__)" @@ -942,14 +6705,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "### MRO" ] }, { "cell_type": "raw", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ " -----------\n", " | |\n", @@ -965,11 +6736,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 52, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "ename": "TypeError", + "evalue": "Cannot create a consistent method resolution\norder (MRO) for bases X, Y", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mclass\u001b[0m \u001b[0mA\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mY\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32mclass\u001b[0m \u001b[0mB\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mY\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[1;32mclass\u001b[0m \u001b[0mC\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mA\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mB\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[0mC\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__mro__\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mTypeError\u001b[0m: Cannot create a consistent method resolution\norder (MRO) for bases X, Y" + ] + } + ], "source": [ "class X: pass\n", "class Y: pass\n", @@ -983,7 +6769,11 @@ }, { "cell_type": "raw", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ " 6\n", " ---\n", @@ -1010,11 +6800,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(, , , , , , )\n" + ] + } + ], "source": [ "class F(): pass\n", "class E(): pass\n", @@ -1027,29 +6828,59 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Wyjątki też są klasami!" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 53, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "ename": "TypeError", + "evalue": "unsupported operand type(s) for +: 'int' and 'str'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;36m5\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m'5'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m: unsupported operand type(s) for +: 'int' and 'str'" + ] + } + ], "source": [ "5 + '5'" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 54, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "no-no\n" + ] + } + ], "source": [ "try:\n", " 5 + '5'\n", @@ -1059,11 +6890,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 55, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " unsupported operand type(s) for +: 'int' and 'str'\n" + ] + } + ], "source": [ "try:\n", " 5 + '5'\n", @@ -1073,11 +6915,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 56, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " unsupported operand type(s) for +: 'int' and 'str'\n" + ] + } + ], "source": [ "try:\n", " 5 + '5'\n", @@ -1087,14 +6940,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 58, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 'T' object does not support indexing\n" + ] + } + ], "source": [ "try:\n", - " dict()[3]\n", + " a[3]\n", "except TypeError as e:\n", " print(type(e), e)\n", "except KeyError as e:\n", @@ -1103,11 +6967,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 59, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "good good good\n", + "bye!\n" + ] + } + ], "source": [ "class WrongAnswerError(Exception):\n", " pass\n", @@ -1122,11 +6998,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 60, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "ename": "TypeError", + "evalue": "exceptions must derive from BaseException", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mA\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m: exceptions must derive from BaseException" + ] + } + ], "source": [ "class A:\n", " pass\n", @@ -1136,60 +7027,107 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 61, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(object,)" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "BaseException.__bases__" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 62, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(BaseException,)" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "Exception.__bases__" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 63, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(Exception,)" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "TypeError.__bases__" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 64, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(BaseException,)" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "KeyboardInterrupt.__bases__" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { - "celltoolbar": "Raw Cell Format", + "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "language": "python", @@ -1205,7 +7143,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.3" + "version": "3.5.1" } }, "nbformat": 4, From 2d27e3e28ee9c4441b4ac3b2ca0accef6c94f723 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 23 Jan 2016 14:13:11 +0100 Subject: [PATCH 08/22] Update L5.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Metadane do pokazu slajdów --- L5.ipynb | 1004 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 825 insertions(+), 179 deletions(-) diff --git a/L5.ipynb b/L5.ipynb index cd45e9b..85c035a 100644 --- a/L5.ipynb +++ b/L5.ipynb @@ -2,21 +2,33 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "# Język Python - Wykład 5" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "# Monkey-patching" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ " from mock import MagicMock\n", " thing = ProductionClass()\n", @@ -28,11 +40,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "b'\\x15\\x0e<\\xea\\xe0Kz`\\xe9\\xafX\\xd2%!\\xaf\\xad[W\\x1b5'" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import os\n", "os.urandom(20)" @@ -40,11 +66,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "b'\\xa3rK\\xe4'\n", + "abcpumpkins\n", + "pumpkins\n", + "b'l\\xb7\\xd0\\x9c'\n" + ] + } + ], "source": [ "from unittest.mock import patch\n", "\n", @@ -60,11 +100,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "opening 1.txt\n" + ] + } + ], "source": [ "def new_open(a,b):\n", " print(\"opening \", a)\n", @@ -76,16 +127,23 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "# Mixin" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -96,9 +154,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -112,11 +173,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "2.8284271247461903" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "p1 = Point2D(2,2)\n", "p1.r()" @@ -124,11 +199,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "fooo\n" + ] + }, + { + "data": { + "text/plain": [ + "4.242640687119285" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "class Point2Dmix(FooMixin,Point2D):\n", " pass\n", @@ -139,16 +235,23 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "https://docs.python.org/3.5/library/socketserver.html" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -160,11 +263,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'active_children', 'collect_children', 'max_children'}" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "class ThreadingTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):\n", " pass\n", @@ -176,9 +293,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -190,21 +310,33 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "# Metaclass" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "(Opracowanie oparte na świetnym wpisie StackOverflow @e-satis: http://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Tim Peters (ten od PEP 20 - Zen of Python oraz od timsort!)\n", "\n", @@ -219,23 +351,34 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Klasy jako obiekty" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Definicje klas służą nam zwykle jako kod, za pomocą którego tworzone są obiekty:\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -245,36 +388,66 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<__main__.ObjectCreator object at 0x7f8abf4d3e80>\n" + ] + } + ], "source": [ "print(ObjectCreator())" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Ale klasy są także same w sobie... obiektami!" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "print(ObjectCreator)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Oznacza to, że obiekt reprezentujący klasę ma umiejętność samemu tworzenia (instancjonowania) innych obiektów. Z tego powodu jest właśnie klasą!\n", "\n", @@ -288,11 +461,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<__main__.ObjectCreator object at 0x7f8abf4d3f60>\n" + ] + } + ], "source": [ "FooCreator = ObjectCreator\n", "print(FooCreator())" @@ -300,20 +484,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n" + ] + } + ], "source": [ "print(hasattr(ObjectCreator, 'bar'))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -322,22 +520,44 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n" + ] + } + ], "source": [ "print(hasattr(ObjectCreator, 'bar'))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "def echo(x):\n", " print(x)\n", @@ -347,23 +567,34 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Dynamiczne tworzenie klas" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Ponieważ klasy są obiektami, można je tworzyć dynamicznie (w run-time):" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -380,11 +611,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ".Foo'>\n", + ".Bar'>\n" + ] + } + ], "source": [ "print(choose_class('foo'))\n", "print(choose_class('bar'))" @@ -392,18 +635,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<__main__.choose_class..Bar object at 0x7f8abf55f0f0>\n" + ] + } + ], "source": [ "print(choose_class('bar')())" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "To podejście nie jest jednak w pełni dynamiczne, bo nadal jest gdzieś explicite napisany kod definiujący tę klasę.\n", "\n", @@ -412,62 +670,112 @@ "W Pythonie tworzenie obiektu klasy odbywa się explicite poprzez użycie funkcji type." ] }, - { - "cell_type": "raw", - "metadata": {}, - "source": [] - }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "print(type(1))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "print(type(\"1\"))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "print(type(ObjectCreator()))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "print(type(ObjectCreator))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "class MyShinyClass():\n", " pass\n", @@ -476,22 +784,44 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "print(type('MyShinyClass', (), {}))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "<__main__.MyShinyClass object at 0x7f8abfda9fd0>\n" + ] + } + ], "source": [ "ms = type('MyShinyClass', (), {})\n", "print(ms())" @@ -499,9 +829,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -514,11 +847,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True False\n" + ] + } + ], "source": [ "FooChild = type('FooChild', (Foo,), {'baz': False})\n", "ob = FooChild()\n", @@ -527,14 +871,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Czym są metaklasy?" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "**Metaklasa jest tym czymś, co tworzy obiekt reprezentujący klasę w Pythonie.**\n", "\n", @@ -543,7 +895,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "```\n", "MyClass = MetaClass()\n", @@ -553,14 +909,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Prównajmy to z tym, co już wiemy o tworzeniu klas:" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "```\n", "MyClass = type('MyClass', (), {})\n", @@ -569,7 +933,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Z tego wynika, że samo **type** jest metaklasą w Pythonie. Co więcej jest ono domyślną metaklasą używaną zawsze standardowo, gdy Python stara się utworzyć jakąś klasę z jej deklaracji i definicji.\n", "\n", @@ -584,11 +952,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "age = 35\n", "print(age.__class__)" @@ -596,11 +975,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "name = 'bob'\n", "print(name.__class__)" @@ -608,11 +998,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "def foo(): pass\n", "print(foo.__class__)" @@ -620,79 +1021,143 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "print(ObjectCreator().__class__)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "W takim razie - jaka jest klasa obiektu reprezentującego klasę klasy? " ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "print(ObjectCreator.__class__.__class__)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "print(age.__class__.__class__)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "skip" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], "source": [ "print(name.__class__.__class__)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "A więc podsumowując - metaklasa to nic innego jak \"fabryka klas\". **type** jest standardową metaklasą w Pythonie, ale Python pozwala nam ją podmienić jeśli chcemy!" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## ``metaclass``" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Za pomocą parametru ``metaclass`` można wskazać której metaklasy ma Python użyć do tworzenia tej klasy." ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "```\n", "class Foo(metaclass=some_metaclass):\n", @@ -702,7 +1167,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Uwaga - jest to pewien hack języka. W momencie deklaracji klasy **class Foo()** tak naprawdę obiekt tej klasy nie jest jeszcze tworzony. Najpierw przeszukiwana jest jej definicja czy znajduje się tam **``metaclass``** - jeśli tak, jest dopiero wtedy używana do utworzenia obiektu/klasy Foo. Jeśli nie ma - użyty zostanie **type**.\n", "\n", @@ -723,14 +1192,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Tworzenie własnej metaklasy" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Metaklas możemy potrzebować, jeśli chcemy modyfikować obiekty reprezentujące klasy podczas ich tworzenia. Jest to szczególnie pomocne przy tworzeniu API. Django ORM (modele) zostały utworzone właśnie z użyciem metaklas.\n", "\n", @@ -739,16 +1216,23 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "**Metaklasą** (pomimo nazwy) może być cokolwiek, co da się wywołać (jest callable) i przyjmie argumenty takie same jak **type(name, bases, dict)**" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -774,9 +1258,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -787,60 +1274,149 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "Foo.FOO" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "Foo.BAR" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "hasattr(Foo, 'bar')" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { - "collapsed": true + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['BAR',\n", + " 'FOO',\n", + " '__class__',\n", + " '__delattr__',\n", + " '__dict__',\n", + " '__dir__',\n", + " '__doc__',\n", + " '__eq__',\n", + " '__format__',\n", + " '__ge__',\n", + " '__getattribute__',\n", + " '__gt__',\n", + " '__hash__',\n", + " '__init__',\n", + " '__le__',\n", + " '__lt__',\n", + " '__module__',\n", + " '__ne__',\n", + " '__new__',\n", + " '__reduce__',\n", + " '__reduce_ex__',\n", + " '__repr__',\n", + " '__setattr__',\n", + " '__sizeof__',\n", + " '__str__',\n", + " '__subclasshook__',\n", + " '__weakref__']" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "dir(Foo())" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Metaklasa nie nazywałaby się meta**klasą**, jeśli tego samego nie można by było osiągnąć używając **klasy** zamiast **funkcji**." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -872,9 +1448,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -895,14 +1474,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Metaklasy - raz jeszcze, krócej" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "1. Przechwytujemy akt tworzenia klasy\n", "2. Modyfikujemy nowo tworzoną klasę\n", @@ -911,14 +1498,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "## Zastosowanie metaklas" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Metaklasy w Pytonie to czarna magia, jeśli pytasz po co masz to stosować, to oznacza, że na pewno nie powinieneś tego stosować. Przypomnijmy raz jeszcze co powiedział Tim Peters:\n", "\n", @@ -927,7 +1522,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Jedynym sensownym użyciem metaklas jest tworzenie API. Raz jeszcze o django ORM:\n", "\n", @@ -944,7 +1543,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Zwykle nie ma sensu używać metaklas. Są zbyt skomplikowane. Klasy możemy spokojnie modyfikować z użyciem:\n", "\n", @@ -954,7 +1557,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Moduł abc --- Abstract Base Classes" ] @@ -963,7 +1570,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -974,7 +1584,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -986,7 +1599,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -997,7 +1613,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -1009,7 +1628,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1027,7 +1649,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1039,7 +1664,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1050,7 +1678,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1061,7 +1692,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1073,7 +1707,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1082,20 +1719,29 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Zastosowanie metaklas do odrobaczania" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "http://www.dabeaz.com/py3meta/Py3Meta.pdf " ] } ], "metadata": { + "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "language": "python", @@ -1111,7 +1757,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.3" + "version": "3.5.1" } }, "nbformat": 4, From 65b248098703895f2359d847b07afc253c784620 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 23 Jan 2016 14:29:39 +0100 Subject: [PATCH 09/22] Update L6.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Metadane do pokazu slajdów. Na pewno trzeba zmienić rozmiar obrazków z diagramami - nie mieszczą się na slajdach a przesuwanie ich jest kłopotliwe --- L6.ipynb | 642 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 517 insertions(+), 125 deletions(-) diff --git a/L6.ipynb b/L6.ipynb index 1357f1e..9cb47d1 100644 --- a/L6.ipynb +++ b/L6.ipynb @@ -2,30 +2,45 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "# Język Python - Wykład 6" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Docstring" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* PEP 257" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -36,20 +51,37 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'Represents a Foo'" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "Foo.__doc__" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -60,20 +92,37 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'Does foo and returns False'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "foo_function.__doc__" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -88,18 +137,47 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Python *nie* wspiera docstringów dla zmiennych i atrybutów. " ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "None\n", + "int(x=0) -> integer\n", + "int(x, base=10) -> integer\n", + "\n", + "Convert a number or string to an integer, or return 0 if no arguments\n", + "are given. If x is a number, return x.__int__(). For floating point\n", + "numbers, this truncates towards zero.\n", + "\n", + "If x is not a number or if base is given, then x must be a string,\n", + "bytes, or bytearray instance representing an integer literal in the\n", + "given base. The literal can be preceded by '+' or '-' and be surrounded\n", + "by whitespace. The base defaults to 10. Valid bases are 0 and 2-36.\n", + "Base 0 means to interpret the base from the string as an integer literal.\n", + ">>> int('0b100', base=0)\n", + "4\n" + ] + } + ], "source": [ "class A:\n", " attribute = 3\n", @@ -111,23 +189,34 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Jednakże niektóre systemy dokumentowania kodu (np. sphinx, epydoc) potrafią parsując kod źródłowy użyć tak skonstruowanych docstringów (warning: it's a hack!)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## \"One more thing\" (dekoracja)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -145,22 +234,45 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Calling decorated function\n", + "Called example function\n" + ] + } + ], "source": [ "example()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "None\n" + ] + } + ], "source": [ "print(example.__doc__)" ] @@ -169,7 +281,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -178,16 +293,23 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Bazinga!" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -208,11 +330,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Docstring\n", + "example\n" + ] + } + ], "source": [ "print(example.__doc__)\n", "print(example.__name__)" @@ -220,7 +354,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "* przy pisaniu dekoratorów **powinniśmy** dekorować funkcję dekorującą dekoratorem wraps z argumentem funkcji dekorowanej\n", "* przypiszemy nowej funkcji wszystkie potrzebne atrybuty starej funkcji, żeby mogła ją całkowicie podmienić " @@ -228,7 +366,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Atrybuty i metody - mechanizm\n", "http://blog.ionelmc.ro/2015/02/09/understanding-python-metaclasses/" @@ -236,7 +378,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "instance.foobar\n", "\n", @@ -245,7 +391,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Class.foobar\n", "\n", @@ -254,14 +404,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Idiomy" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Uruchamianie i import" ] @@ -270,7 +428,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -282,7 +443,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Warunki logiczne" ] @@ -291,7 +456,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -307,7 +475,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -318,16 +489,23 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ - "Przynależność" + "### Przynależność" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -341,7 +519,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -355,7 +536,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -370,7 +554,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -385,7 +572,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Składanie tekstu" ] @@ -394,7 +585,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -408,7 +602,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -422,7 +619,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### EAFP vs LBYL\n", "“It's Easier to Ask for Forgiveness than\n", @@ -434,7 +635,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -450,7 +654,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -464,7 +671,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### List comprehension" ] @@ -473,7 +684,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -487,7 +701,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -502,7 +719,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Upraszczanie wyboru" ] @@ -511,7 +732,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -529,7 +753,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -544,14 +771,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Wzorce projektowe" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Wbudowane:\n", " - iterator\n", @@ -560,7 +795,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "### Zasoby:\n", " https://github.com/faif/python-patterns" @@ -568,14 +807,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Singleton" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Definicja:\n", " - jeden obiekt danej klasy" @@ -583,7 +830,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Zastosowania:\n", " * potrzeba tylko jednego obiektu (np. połączenie do bazy danych, logger)\n", @@ -593,9 +844,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -608,9 +862,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -620,9 +877,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -631,40 +891,83 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], "source": [ "print(o2.x)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(139983926022944, 139983926022944)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "id(o1),id(o2)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(True, True)" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "o1 is o2, o1 == o2" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Dzielenie stanu" ] @@ -673,7 +976,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -689,7 +995,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -701,7 +1010,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -713,7 +1025,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -724,7 +1039,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -733,28 +1051,44 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "https://chromium.googlesource.com/external/googleappengine/python/+/master/google/pyglib/singleton.py" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Pułapki importowania" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "http://ncoghlan-devs-python-notes.readthedocs.org/en/latest/python_concepts/import_traps.html" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "project/\n", " setup.py\n", @@ -768,7 +1102,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "// These commands will most likely *FAIL* due to problems with the way\n", "//the import state gets initialised, even if the test code is correct\n", @@ -800,7 +1138,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -812,7 +1153,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -824,7 +1168,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -833,14 +1180,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### MVC" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Definicja:\n", " - model - DANE i LOGIKA BIZNESOWA (nie zależy od widoku i kontrolera)\n", @@ -852,7 +1207,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -878,7 +1236,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -895,7 +1256,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -921,7 +1285,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -937,7 +1304,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -954,7 +1324,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -964,7 +1337,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Factory method pattern" ] @@ -973,7 +1350,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -995,7 +1375,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1004,7 +1387,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Strategia" ] @@ -1013,7 +1400,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1031,7 +1421,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Observer" ] @@ -1040,7 +1434,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1068,7 +1465,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1092,18 +1492,10 @@ "p = Point(2.0, 3.0)\n", "p.scale(2.5)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { + "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "language": "python", @@ -1119,7 +1511,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.3" + "version": "3.5.1" } }, "nbformat": 4, From 1434326f9ade91dc90cc448041f876eac3c932a5 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 23 Jan 2016 14:46:51 +0100 Subject: [PATCH 10/22] Update L7.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Metadane do pokazu slajdów --- L7.ipynb | 1471 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 1271 insertions(+), 200 deletions(-) diff --git a/L7.ipynb b/L7.ipynb index 3ee1298..e756ffe 100644 --- a/L7.ipynb +++ b/L7.ipynb @@ -2,21 +2,33 @@ "cells": [ { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "# Język Python - Wykład 7" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "Python3: \"A general goal is to reduce feature duplication by removing old ways of doing things\" (PEP 3100)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Różnice Python 2.x i 3.x\n", " - https://docs.python.org/3/whatsnew/3.0.html\n", @@ -26,7 +38,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ " - print vs print()\n", " - UTF i kodowanie\n", @@ -39,16 +55,23 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Ciąg znaków - przypomnienie" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -57,29 +80,62 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'a'" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "s[0]" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "ename": "TypeError", + "evalue": "'str' object does not support item assignment", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0ms\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'b'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m: 'str' object does not support item assignment" + ] + } + ], "source": [ "s[0] = 'b'" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Kodowanie znaków\n", "Unicode - konsorcjum/standard. Kodowania:\n", @@ -95,7 +151,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Pojęcia:\n", " - znak\n", @@ -106,7 +166,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Zastosowania\n", "### Terminal\n", @@ -125,7 +189,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### ASCII\n", " - kod 7-bitowy (1968, USA)\n", @@ -136,51 +204,106 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "' ! \" # $ % & \\' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\\\ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "\" \".join(chr(i) for i in range(32,127))" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a\n", + "b\n" + ] + } + ], "source": [ "print(\"a\\nb\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a\r\n", + "b\n" + ] + } + ], "source": [ "print(\"a\\r\\nb\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a\r", + "\r", + "b\n" + ] + } + ], "source": [ "print(\"a\\r\\rb\")" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## klasa *bytes* \n", "ciągi 8-bitowych liczb z zakresu 0 <= x < 255" @@ -188,33 +311,432 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bytes(10)" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], + "execution_count": 9, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on class bytes in module builtins:\n", + "\n", + "class bytes(object)\n", + " | bytes(iterable_of_ints) -> bytes\n", + " | bytes(string, encoding[, errors]) -> bytes\n", + " | bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer\n", + " | bytes(int) -> bytes object of size given by the parameter initialized with null bytes\n", + " | bytes() -> empty bytes object\n", + " | \n", + " | Construct an immutable array of bytes from:\n", + " | - an iterable yielding integers in range(256)\n", + " | - a text string encoded using the specified encoding\n", + " | - any object implementing the buffer API.\n", + " | - an integer\n", + " | \n", + " | Methods defined here:\n", + " | \n", + " | __add__(self, value, /)\n", + " | Return self+value.\n", + " | \n", + " | __contains__(self, key, /)\n", + " | Return key in self.\n", + " | \n", + " | __eq__(self, value, /)\n", + " | Return self==value.\n", + " | \n", + " | __ge__(self, value, /)\n", + " | Return self>=value.\n", + " | \n", + " | __getattribute__(self, name, /)\n", + " | Return getattr(self, name).\n", + " | \n", + " | __getitem__(self, key, /)\n", + " | Return self[key].\n", + " | \n", + " | __getnewargs__(...)\n", + " | \n", + " | __gt__(self, value, /)\n", + " | Return self>value.\n", + " | \n", + " | __hash__(self, /)\n", + " | Return hash(self).\n", + " | \n", + " | __iter__(self, /)\n", + " | Implement iter(self).\n", + " | \n", + " | __le__(self, value, /)\n", + " | Return self<=value.\n", + " | \n", + " | __len__(self, /)\n", + " | Return len(self).\n", + " | \n", + " | __lt__(self, value, /)\n", + " | Return self copy of B\n", + " | \n", + " | Return a copy of B with only its first character capitalized (ASCII)\n", + " | and the rest lower-cased.\n", + " | \n", + " | center(...)\n", + " | B.center(width[, fillchar]) -> copy of B\n", + " | \n", + " | Return B centered in a string of length width. Padding is\n", + " | done using the specified fill character (default is a space).\n", + " | \n", + " | count(...)\n", + " | B.count(sub[, start[, end]]) -> int\n", + " | \n", + " | Return the number of non-overlapping occurrences of substring sub in\n", + " | string B[start:end]. Optional arguments start and end are interpreted\n", + " | as in slice notation.\n", + " | \n", + " | decode(self, /, encoding='utf-8', errors='strict')\n", + " | Decode the bytes using the codec registered for encoding.\n", + " | \n", + " | encoding\n", + " | The encoding with which to decode the bytes.\n", + " | errors\n", + " | The error handling scheme to use for the handling of decoding errors.\n", + " | The default is 'strict' meaning that decoding errors raise a\n", + " | UnicodeDecodeError. Other possible values are 'ignore' and 'replace'\n", + " | as well as any other name registered with codecs.register_error that\n", + " | can handle UnicodeDecodeErrors.\n", + " | \n", + " | endswith(...)\n", + " | B.endswith(suffix[, start[, end]]) -> bool\n", + " | \n", + " | Return True if B ends with the specified suffix, False otherwise.\n", + " | With optional start, test B beginning at that position.\n", + " | With optional end, stop comparing B at that position.\n", + " | suffix can also be a tuple of bytes to try.\n", + " | \n", + " | expandtabs(...)\n", + " | B.expandtabs(tabsize=8) -> copy of B\n", + " | \n", + " | Return a copy of B where all tab characters are expanded using spaces.\n", + " | If tabsize is not given, a tab size of 8 characters is assumed.\n", + " | \n", + " | find(...)\n", + " | B.find(sub[, start[, end]]) -> int\n", + " | \n", + " | Return the lowest index in B where substring sub is found,\n", + " | such that sub is contained within B[start:end]. Optional\n", + " | arguments start and end are interpreted as in slice notation.\n", + " | \n", + " | Return -1 on failure.\n", + " | \n", + " | fromhex(string, /) from builtins.type\n", + " | Create a bytes object from a string of hexadecimal numbers.\n", + " | \n", + " | Spaces between two numbers are accepted.\n", + " | Example: bytes.fromhex('B9 01EF') -> b'\\\\xb9\\\\x01\\\\xef'.\n", + " | \n", + " | hex(...)\n", + " | B.hex() -> string\n", + " | \n", + " | Create a string of hexadecimal numbers from a bytes object.\n", + " | Example: b'\\xb9\\x01\\xef'.hex() -> 'b901ef'.\n", + " | \n", + " | index(...)\n", + " | B.index(sub[, start[, end]]) -> int\n", + " | \n", + " | Like B.find() but raise ValueError when the substring is not found.\n", + " | \n", + " | isalnum(...)\n", + " | B.isalnum() -> bool\n", + " | \n", + " | Return True if all characters in B are alphanumeric\n", + " | and there is at least one character in B, False otherwise.\n", + " | \n", + " | isalpha(...)\n", + " | B.isalpha() -> bool\n", + " | \n", + " | Return True if all characters in B are alphabetic\n", + " | and there is at least one character in B, False otherwise.\n", + " | \n", + " | isdigit(...)\n", + " | B.isdigit() -> bool\n", + " | \n", + " | Return True if all characters in B are digits\n", + " | and there is at least one character in B, False otherwise.\n", + " | \n", + " | islower(...)\n", + " | B.islower() -> bool\n", + " | \n", + " | Return True if all cased characters in B are lowercase and there is\n", + " | at least one cased character in B, False otherwise.\n", + " | \n", + " | isspace(...)\n", + " | B.isspace() -> bool\n", + " | \n", + " | Return True if all characters in B are whitespace\n", + " | and there is at least one character in B, False otherwise.\n", + " | \n", + " | istitle(...)\n", + " | B.istitle() -> bool\n", + " | \n", + " | Return True if B is a titlecased string and there is at least one\n", + " | character in B, i.e. uppercase characters may only follow uncased\n", + " | characters and lowercase characters only cased ones. Return False\n", + " | otherwise.\n", + " | \n", + " | isupper(...)\n", + " | B.isupper() -> bool\n", + " | \n", + " | Return True if all cased characters in B are uppercase and there is\n", + " | at least one cased character in B, False otherwise.\n", + " | \n", + " | join(self, iterable_of_bytes, /)\n", + " | Concatenate any number of bytes objects.\n", + " | \n", + " | The bytes whose method is called is inserted in between each pair.\n", + " | \n", + " | The result is returned as a new bytes object.\n", + " | \n", + " | Example: b'.'.join([b'ab', b'pq', b'rs']) -> b'ab.pq.rs'.\n", + " | \n", + " | ljust(...)\n", + " | B.ljust(width[, fillchar]) -> copy of B\n", + " | \n", + " | Return B left justified in a string of length width. Padding is\n", + " | done using the specified fill character (default is a space).\n", + " | \n", + " | lower(...)\n", + " | B.lower() -> copy of B\n", + " | \n", + " | Return a copy of B with all ASCII characters converted to lowercase.\n", + " | \n", + " | lstrip(self, bytes=None, /)\n", + " | Strip leading bytes contained in the argument.\n", + " | \n", + " | If the argument is omitted or None, strip leading ASCII whitespace.\n", + " | \n", + " | partition(self, sep, /)\n", + " | Partition the bytes into three parts using the given separator.\n", + " | \n", + " | This will search for the separator sep in the bytes. If the separator is found,\n", + " | returns a 3-tuple containing the part before the separator, the separator\n", + " | itself, and the part after it.\n", + " | \n", + " | If the separator is not found, returns a 3-tuple containing the original bytes\n", + " | object and two empty bytes objects.\n", + " | \n", + " | replace(self, old, new, count=-1, /)\n", + " | Return a copy with all occurrences of substring old replaced by new.\n", + " | \n", + " | count\n", + " | Maximum number of occurrences to replace.\n", + " | -1 (the default value) means replace all occurrences.\n", + " | \n", + " | If the optional argument count is given, only the first count occurrences are\n", + " | replaced.\n", + " | \n", + " | rfind(...)\n", + " | B.rfind(sub[, start[, end]]) -> int\n", + " | \n", + " | Return the highest index in B where substring sub is found,\n", + " | such that sub is contained within B[start:end]. Optional\n", + " | arguments start and end are interpreted as in slice notation.\n", + " | \n", + " | Return -1 on failure.\n", + " | \n", + " | rindex(...)\n", + " | B.rindex(sub[, start[, end]]) -> int\n", + " | \n", + " | Like B.rfind() but raise ValueError when the substring is not found.\n", + " | \n", + " | rjust(...)\n", + " | B.rjust(width[, fillchar]) -> copy of B\n", + " | \n", + " | Return B right justified in a string of length width. Padding is\n", + " | done using the specified fill character (default is a space)\n", + " | \n", + " | rpartition(self, sep, /)\n", + " | Partition the bytes into three parts using the given separator.\n", + " | \n", + " | This will search for the separator sep in the bytes, starting and the end. If\n", + " | the separator is found, returns a 3-tuple containing the part before the\n", + " | separator, the separator itself, and the part after it.\n", + " | \n", + " | If the separator is not found, returns a 3-tuple containing two empty bytes\n", + " | objects and the original bytes object.\n", + " | \n", + " | rsplit(self, /, sep=None, maxsplit=-1)\n", + " | Return a list of the sections in the bytes, using sep as the delimiter.\n", + " | \n", + " | sep\n", + " | The delimiter according which to split the bytes.\n", + " | None (the default value) means split on ASCII whitespace characters\n", + " | (space, tab, return, newline, formfeed, vertical tab).\n", + " | maxsplit\n", + " | Maximum number of splits to do.\n", + " | -1 (the default value) means no limit.\n", + " | \n", + " | Splitting is done starting at the end of the bytes and working to the front.\n", + " | \n", + " | rstrip(self, bytes=None, /)\n", + " | Strip trailing bytes contained in the argument.\n", + " | \n", + " | If the argument is omitted or None, strip trailing ASCII whitespace.\n", + " | \n", + " | split(self, /, sep=None, maxsplit=-1)\n", + " | Return a list of the sections in the bytes, using sep as the delimiter.\n", + " | \n", + " | sep\n", + " | The delimiter according which to split the bytes.\n", + " | None (the default value) means split on ASCII whitespace characters\n", + " | (space, tab, return, newline, formfeed, vertical tab).\n", + " | maxsplit\n", + " | Maximum number of splits to do.\n", + " | -1 (the default value) means no limit.\n", + " | \n", + " | splitlines(self, /, keepends=False)\n", + " | Return a list of the lines in the bytes, breaking at line boundaries.\n", + " | \n", + " | Line breaks are not included in the resulting list unless keepends is given and\n", + " | true.\n", + " | \n", + " | startswith(...)\n", + " | B.startswith(prefix[, start[, end]]) -> bool\n", + " | \n", + " | Return True if B starts with the specified prefix, False otherwise.\n", + " | With optional start, test B beginning at that position.\n", + " | With optional end, stop comparing B at that position.\n", + " | prefix can also be a tuple of bytes to try.\n", + " | \n", + " | strip(self, bytes=None, /)\n", + " | Strip leading and trailing bytes contained in the argument.\n", + " | \n", + " | If the argument is omitted or None, strip leading and trailing ASCII whitespace.\n", + " | \n", + " | swapcase(...)\n", + " | B.swapcase() -> copy of B\n", + " | \n", + " | Return a copy of B with uppercase ASCII characters converted\n", + " | to lowercase ASCII and vice versa.\n", + " | \n", + " | title(...)\n", + " | B.title() -> copy of B\n", + " | \n", + " | Return a titlecased version of B, i.e. ASCII words start with uppercase\n", + " | characters, all remaining cased characters have lowercase.\n", + " | \n", + " | translate(...)\n", + " | translate(table, [deletechars])\n", + " | Return a copy with each character mapped by the given translation table.\n", + " | \n", + " | table\n", + " | Translation table, which must be a bytes object of length 256.\n", + " | \n", + " | All characters occurring in the optional argument deletechars are removed.\n", + " | The remaining characters are mapped through the given translation table.\n", + " | \n", + " | upper(...)\n", + " | B.upper() -> copy of B\n", + " | \n", + " | Return a copy of B with all ASCII characters converted to uppercase.\n", + " | \n", + " | zfill(...)\n", + " | B.zfill(width) -> copy of B\n", + " | \n", + " | Pad a numeric string B with zeros on the left, to fill a field\n", + " | of the specified width. B is never truncated.\n", + " | \n", + " | ----------------------------------------------------------------------\n", + " | Static methods defined here:\n", + " | \n", + " | maketrans(frm, to, /)\n", + " | Return a translation table useable for the bytes or bytearray translate method.\n", + " | \n", + " | The returned table will be one where each byte in frm is mapped to the byte at\n", + " | the same position in to.\n", + " | \n", + " | The bytes objects frm and to must be of the same length.\n", + "\n" + ] + } + ], "source": [ "help(bytes)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "b'\\n'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bytes([10])" ] @@ -223,7 +745,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -232,9 +757,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -244,62 +772,136 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(bytes, str)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(tmp),type(s)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(2, int)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tmp[1],type(tmp[1])" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "('2', str)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "s[1],type(s[1])" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(b'\\x02\\x03\\x04', bytes)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tmp[1:],type(tmp[1:])" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(2, int)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "list(tmp)[1],type(list(tmp)[1])" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Windows 1250\n", " - Microsoft\n", @@ -312,7 +914,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -324,7 +929,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -336,7 +944,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -345,7 +956,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## ISO 8859-2 / ISO Latin2\n", " - standard ISO\n", @@ -358,7 +973,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -370,7 +988,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -382,7 +1003,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -393,7 +1017,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## UTF-8\n", " - standard UNICODE\n", @@ -405,7 +1033,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -417,7 +1048,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -427,7 +1061,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## UTF-16\n", " - standard UNICODE\n", @@ -439,7 +1077,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -451,7 +1092,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -461,7 +1105,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## UTF-32 / USC-4\n", " - stałej długości (4 bajty)" @@ -471,7 +1119,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -483,7 +1134,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -493,7 +1147,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Hint\n", "Software should only work with Unicode strings internally, decoding the input data as soon as possible and encoding the output only at the end.\n", @@ -504,7 +1162,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Python 3.x\n", " - Unicode domyślnie (w tym ASCII) - str\n", @@ -516,22 +1178,47 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "str" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(\"AGH\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "utf-8\n" + ] + } + ], "source": [ "import sys\n", "print(sys.getdefaultencoding())" @@ -539,20 +1226,37 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "str" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(\"ąę\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -563,62 +1267,136 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "['test']" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "%sx cat /tmp/records.log" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'Δ'" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "\"\\N{GREEK CAPITAL LETTER DELTA}\"" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'Δ'" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "\"\\u0394\"" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "916" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ord('Δ')" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'Δ'" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "chr(916)" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "kodowanie pliku:\n", " #!/usr/bin/env python\n", @@ -629,7 +1407,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -644,7 +1425,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -659,7 +1443,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -670,7 +1457,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -681,7 +1471,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -692,7 +1485,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -703,7 +1499,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -714,7 +1513,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -725,7 +1527,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -736,7 +1541,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -747,7 +1555,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -758,7 +1569,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -769,7 +1583,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Collation - definiuje porządek sortowania\n", " - https://en.wikipedia.org/wiki/Collation\n", @@ -778,7 +1596,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Python 2.x\n", " - ASCII domyślnie\n", @@ -790,7 +1612,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -802,7 +1627,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -815,7 +1643,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -827,7 +1658,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -850,7 +1684,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -867,7 +1704,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -884,7 +1724,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -898,7 +1741,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -913,7 +1759,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Varia\n", "http://www.laurentluce.com/posts/python-string-objects-implementation/\n", @@ -922,14 +1772,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## print" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Arguments (PEP 3105 -- Make print a function):\n", " - print is the only application-level functionality that has a statement (syntax!) dedicated to it. Syntax should cover only necessary items. \n", @@ -941,7 +1799,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -953,7 +1814,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -965,7 +1829,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -982,7 +1849,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -996,14 +1866,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### Chevron print" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Chevron (pl. szewron) - naszywka na rękawie lub naramienniku munduru, w kształcie prostej lub odwróconej litery \"V\"\n", "https://pl.wikipedia.org/wiki/Szewron_(naszywka) https://en.wikipedia.org/wiki/Chevron_(insignia)" @@ -1011,11 +1889,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Not an error\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Error!\n", + "Error!\n" + ] + } + ], "source": [ "%%python3\n", "import sys\n", @@ -1026,11 +1923,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Not an error\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Error!\n", + "Error!\n" + ] + } + ], "source": [ "%%python2\n", "import sys\n", @@ -1042,7 +1958,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "slideshow": { + "slide_type": "subslide" + } }, "source": [ "## map, filter, reduce" @@ -1050,7 +1969,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "### Views And Iterators Instead Of Lists" ] @@ -1059,7 +1982,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1073,7 +1999,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1085,7 +2014,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### map" ] @@ -1094,7 +2027,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1108,7 +2044,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1122,7 +2061,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -1144,7 +2086,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1165,14 +2110,22 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### reduce" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "Python 3000 FAQ\n", "http://www.artima.com/weblogs/viewpost.jsp?thread=211200\n", @@ -1186,7 +2139,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -1200,7 +2156,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1215,7 +2174,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1230,18 +2192,33 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### range" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n" + ] + } + ], "source": [ "%%python2\n", "range(10)\n", @@ -1251,11 +2228,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "range(0, 10)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Traceback (most recent call last):\n", + " File \"\", line 2, in \n", + "NameError: name 'xrange' is not defined\n" + ] + } + ], "source": [ "%%python3\n", "print(range(10))\n", @@ -1264,16 +2261,23 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "### zip" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1285,9 +2289,12 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1299,7 +2306,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## map, filter, reduce" ] @@ -1308,7 +2319,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1321,7 +2335,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1332,7 +2349,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## integers\n", "long renamed to int" @@ -1342,7 +2363,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1355,7 +2379,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1366,7 +2393,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, "source": [ "https://www.python.org/dev/peps/pep-0238/\n", "The current division (/) operator has an ambiguous meaning for\n", @@ -1396,7 +2427,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -1408,7 +2442,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1420,7 +2457,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1432,7 +2472,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1444,7 +2487,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1453,7 +2499,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Wyjatki\n", "\n", @@ -1464,7 +2514,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1488,7 +2541,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1511,7 +2567,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "subslide" + } }, "outputs": [], "source": [ @@ -1526,7 +2585,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1566,7 +2628,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## List comprehension" ] @@ -1575,7 +2641,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1587,7 +2656,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, "source": [ "## Rozpakowywanie krotek\n", "PEP 3113 -- Removal of Tuple Parameter Unpacking\n", @@ -1598,7 +2671,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1612,7 +2688,10 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": false + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } }, "outputs": [], "source": [ @@ -1623,18 +2702,10 @@ " return 0.5*(a+c),0.5*(b+d)\n", "print(middle( (1,0), (13,-4)))" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { + "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "language": "python", @@ -1650,7 +2721,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.4.3" + "version": "3.5.1" } }, "nbformat": 4, From 910dc60b88ad0bfaedeb5ba0944e9424fd731f63 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sun, 24 Jan 2016 15:04:06 +0100 Subject: [PATCH 11/22] Update README_RISE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dodano opis instalcji na Windows - jest problem ze zmianą font size (na windows). Pomimo zmiany parametru rozmiar tekstu się nie zmienia --- README_RISE.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/README_RISE.md b/README_RISE.md index 9eaebe0..96cbab1 100644 --- a/README_RISE.md +++ b/README_RISE.md @@ -34,7 +34,7 @@ cd RISE/ python setup.py install ``` -Sprawdzenie instalacji: +#### Sprawdzenie instalacji: Po otwarciu w jupyter nootebook dowolnego wykładu w menu toolbar powinna pojawić
się nowa ikona : "Enter/Exit Live Reveal Slideshow" (wygląda jak histogram)
@@ -43,6 +43,32 @@ cd jupyter notebook LX.ipynb ``` +##### !!! + Aby osiagnac najlepszy efekt zaleca sie wykonanie instrukcji
+ zawartej w dziale WAŻNE + +# Windows + +1. Pobierz potrzebne pliki z repozytorium https://github.com/damianavila/RISE.git
+ ``` + cd + git clone https://github.com/damianavila/RISE.git + ``` + (jeżeli nie masz Gita - zainstaluj go)
+ +2. W tym przypadku nie jest konieczne ustawianie żadnych zmiennych,
+ należy przejć do folderu RISE i rozpoczć instalacje:
+ ``` + cd + python setup.py install + ``` + +3. Instalacja powinna zakończyć sie bez żadnych bledów
+ Aby zweryfikować, sprawdź czy możesz wlaczyc pokaz slajdów
+ tak jak opisano w Sprawdzenie instalacji w dziale powswieconym
+ instalacji na UNIX.

+ + ## WAŻNE Aby uzyskać najlepszy efekt, należy zmienić domyślny rozmiar czcionki
From 6ded44c4eca8b1970428f059b55145d1266ec277 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Thu, 28 Jan 2016 17:51:55 +0100 Subject: [PATCH 12/22] Update README_RISE.md Przedostatnia wersja - jak tylko uda mi sie doprowadzic do porzadku pokaz slajdow bedzie wersja ostateczna --- README_RISE.md | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/README_RISE.md b/README_RISE.md index 96cbab1..fae19ce 100644 --- a/README_RISE.md +++ b/README_RISE.md @@ -9,31 +9,22 @@ https://github.com/damianavila/RISE/releases 1. Pobierz potrzebne pliki z repozytorium https://github.com/damianavila/RISE.git
``` - cd git clone https://github.com/damianavila/RISE.git ``` -2. Do instalacji należy wykorzystać skrypt `setup.py`, jednak wcześniej trzeba ustawić zmienną
- JUPYTER_CONFIG_DIR dodając do pliku `~/.bashrc` następującą linię:

- UWAGA - alternatywnie można wykonać kroki opisane w podpunkcie 3.
- - `export JUPYTER_CONFIG_DIR="/.jupyter/:$JUPYTER_CONFIG_DIR"` - - Przydatna może być też zmienna JUPYTER_PATH: - - `export JUPYTER_PATH="/.local/share/jupyter/:$JUPYTER_PATH"` - -3. Zamiast ustawiać zmienną JUPYTER_CONFIG_DIR, można uruchomić instalację poleceniem
-`JUPYTER_CONFIG_DIR= python setup.py install`
-Efekt powiniene być ten sam, naturalnie korzystając z tego rozwiązania należy pominąć punkt 4. - -4. Użyj skryptu `setup.py` aby zainstalować wtyczkę - -``` +2. Instalacja polega na uruchomieniu skryptu `setup.py` z parametrem install.
+3. + ``` cd RISE/ python setup.py install ``` + Jeżeli instalacja nie przebiega prawidowo (pojawiaja sie bledy dotyczace JUPYTERa),
+ Należy dodatkowo ustawić zmienna `JUPYTER_CONFIG_DIR`. Prawdopodobnie powinna wskazywać na
+ `~/.jupyter`, szczegolowy opis znaduje sie tutaj: http://jupyter-core.readthedocs.org/en/latest/paths.html

+`JUPYTER_CONFIG_DIR= python setup.py install`
+ + #### Sprawdzenie instalacji: Po otwarciu w jupyter nootebook dowolnego wykładu w menu toolbar powinna pojawić
@@ -70,6 +61,7 @@ jupyter notebook LX.ipynb ## WAŻNE +#### Jak tylko znajde dobry sposob od razu zamieszcze rozwiazanie w tym miejscu Aby uzyskać najlepszy efekt, należy zmienić domyślny rozmiar czcionki
(inaczej niektóre slajdy nie mieszczą się na ekranie) @@ -91,4 +83,5 @@ Po wykonaniu powyższych czynności można cieszyć się interaktywnym pokazem s Przydatne linki:
https://github.com/agh-glk/python-lecture
https://github.com/damianavila/RISE
-https://github.com/damianavila/RISE/releases +https://github.com/damianavila/RISE/releases
+https://github.com/damianavila/RISE.git From ad0241fee5ef94c882220771b9714c3347e0fb67 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Thu, 28 Jan 2016 17:53:04 +0100 Subject: [PATCH 13/22] Update README_RISE.md --- README_RISE.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README_RISE.md b/README_RISE.md index fae19ce..e663c50 100644 --- a/README_RISE.md +++ b/README_RISE.md @@ -42,7 +42,6 @@ jupyter notebook LX.ipynb 1. Pobierz potrzebne pliki z repozytorium https://github.com/damianavila/RISE.git
``` - cd git clone https://github.com/damianavila/RISE.git ``` (jeżeli nie masz Gita - zainstaluj go)
From f18d2a8c4d7d9ed9a876e48e686bd2dded0dfb22 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 30 Jan 2016 16:44:05 +0100 Subject: [PATCH 14/22] Update README_RISE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rozwiazany problem z czcionką, trochę mętny opis ale sam nie do końca rozumiem po co jest ten katalog i dlaczego właśnie tam. (Rozwiązanie podsunięte przez Damiana Avile). Za chwilę zmienię system i sprawdzę jak wygląda przykładowa ścieżka w przypadku Windowsa. Cały czas pozostaje problem polskich znaków. --- README_RISE.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/README_RISE.md b/README_RISE.md index e663c50..fc8c3b9 100644 --- a/README_RISE.md +++ b/README_RISE.md @@ -60,22 +60,21 @@ jupyter notebook LX.ipynb ## WAŻNE -#### Jak tylko znajde dobry sposob od razu zamieszcze rozwiazanie w tym miejscu -Aby uzyskać najlepszy efekt, należy zmienić domyślny rozmiar czcionki
-(inaczej niektóre slajdy nie mieszczą się na ekranie) +Aby slajdy mieściły się w pełni na ekranie, konieczna jest modyfikacja
+parametru odpowiadającego za ich powiększenie (domyślnie równa 160%).
+
+Parametr jest ustawiony w pliku
+`/jupyter/nbextensions/livereveal/main.css`
+gdzie `` to miejsce w którym przechowywane są dane o aplikacjach
+(w to miejsce były kopiowane pliki po uruchomieniu skryptu `setup.py`)
+na przykład może to być
+`~/.local/share/` w przypadku systemu UNIX czy
+`znalesc dla Windows` w przypadku systemu Windows
+Modyfikację należy wprowadzić w linii 67, ustawiając parametr:
+`font-size: 100%;` -Żeby to zrobić, należy zmodyfikować następujący plik
-(Szablon używany w tych wykładach to 'simple')
-`/livereveal/reveal.js/css/theme/simple.css`

- - -W linii 19. parametr `font-size` powinien przyjmować wartość 16px:
-`font-size: 16px;` - -Jeżeli w użyciu byłby inny szablon, należy znaleść go w folderze /theme
-i odpowiednio zmodyfikować wartość `font-size` Po wykonaniu powyższych czynności można cieszyć się interaktywnym pokazem slajdów.
From 1b07c5be2811faadbd4fd29103dcfe4eed7e5fc4 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 30 Jan 2016 16:53:48 +0100 Subject: [PATCH 15/22] Update L1.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Usunięte komórki wyjściowe --- L1.ipynb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/L1.ipynb b/L1.ipynb index f28d0e0..9e85a97 100644 --- a/L1.ipynb +++ b/L1.ipynb @@ -605,7 +605,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, + "collapsed": false, "scrolled": true, "slideshow": { "slide_type": "subslide" @@ -623,7 +623,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, + "collapsed": false, "scrolled": true, "slideshow": { "slide_type": "fragment" @@ -639,7 +639,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, + "collapsed": false, "scrolled": true, "slideshow": { "slide_type": "fragment" @@ -655,7 +655,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, + "collapsed": false, "scrolled": true, "slideshow": { "slide_type": "fragment" @@ -905,7 +905,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, + "collapsed": false, "scrolled": true, "slideshow": { "slide_type": "fragment" @@ -921,7 +921,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, + "collapsed": false, "scrolled": true, "slideshow": { "slide_type": "fragment" @@ -936,7 +936,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, + "collapsed": false, "scrolled": true, "slideshow": { "slide_type": "fragment" @@ -951,7 +951,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, + "collapsed": false, "scrolled": true, "slideshow": { "slide_type": "fragment" @@ -966,7 +966,7 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, + "collapsed": false, "scrolled": true, "slideshow": { "slide_type": "fragment" From 4cbfac0ad57d6b97bdd5956efda750f37e52db06 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 30 Jan 2016 16:54:44 +0100 Subject: [PATCH 16/22] Update L2.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Usunięte komórki wyjściowe --- L2.ipynb | 1317 +++++++----------------------------------------------- 1 file changed, 152 insertions(+), 1165 deletions(-) diff --git a/L2.ipynb b/L2.ipynb index 1155ecc..2ce1795 100644 --- a/L2.ipynb +++ b/L2.ipynb @@ -171,22 +171,14 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']\n" - ] - } - ], + "outputs": [], "source": [ "from keyword import kwlist\n", "print(kwlist)" @@ -205,23 +197,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "invalid syntax (, line 1)", - "output_type": "error", - "traceback": [ - "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m for = 8\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" - ] - } - ], + "outputs": [], "source": [ "for = 8\n", "while = \"aaa\"" @@ -240,47 +223,28 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'ZeroDivisionError', '__IPYTHON__', '__IPYTHON__active', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'dreload', 'enumerate', 'eval', 'exec', 'filter', 'float', 'format', 'frozenset', 'get_ipython', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']\n" - ] - } - ], + "outputs": [], "source": [ "print(dir(__builtins__))" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "137" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "int = \"ojej\"\n", "len = lambda x : 137\n", @@ -289,25 +253,14 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "len([0,1,2,3])\n", "'True' in dir(__builtins__)" @@ -331,23 +284,14 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - " File \"\", line 1\n", - "SyntaxError: can't assign to keyword\n" - ] - } - ], + "outputs": [], "source": [ "%%python3\n", "True = 0" @@ -355,7 +299,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -370,23 +314,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The while loop is over.\n", - "Done\n" - ] - } - ], + "outputs": [], "source": [ "%%python2\n", "def guess(number=23):\n", @@ -413,22 +348,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Once deleted, variables cannot be recovered. Proceed (y/[n])? y\n" - ] - } - ], + "outputs": [], "source": [ "%reset" ] @@ -463,139 +390,14 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Help on class list in module builtins:\n", - "\n", - "class list(object)\n", - " | list() -> new empty list\n", - " | list(iterable) -> new list initialized from iterable's items\n", - " | \n", - " | Methods defined here:\n", - " | \n", - " | __add__(self, value, /)\n", - " | Return self+value.\n", - " | \n", - " | __contains__(self, key, /)\n", - " | Return key in self.\n", - " | \n", - " | __delitem__(self, key, /)\n", - " | Delete self[key].\n", - " | \n", - " | __eq__(self, value, /)\n", - " | Return self==value.\n", - " | \n", - " | __ge__(self, value, /)\n", - " | Return self>=value.\n", - " | \n", - " | __getattribute__(self, name, /)\n", - " | Return getattr(self, name).\n", - " | \n", - " | __getitem__(...)\n", - " | x.__getitem__(y) <==> x[y]\n", - " | \n", - " | __gt__(self, value, /)\n", - " | Return self>value.\n", - " | \n", - " | __iadd__(self, value, /)\n", - " | Implement self+=value.\n", - " | \n", - " | __imul__(self, value, /)\n", - " | Implement self*=value.\n", - " | \n", - " | __init__(self, /, *args, **kwargs)\n", - " | Initialize self. See help(type(self)) for accurate signature.\n", - " | \n", - " | __iter__(self, /)\n", - " | Implement iter(self).\n", - " | \n", - " | __le__(self, value, /)\n", - " | Return self<=value.\n", - " | \n", - " | __len__(self, /)\n", - " | Return len(self).\n", - " | \n", - " | __lt__(self, value, /)\n", - " | Return self None -- append object to end\n", - " | \n", - " | clear(...)\n", - " | L.clear() -> None -- remove all items from L\n", - " | \n", - " | copy(...)\n", - " | L.copy() -> list -- a shallow copy of L\n", - " | \n", - " | count(...)\n", - " | L.count(value) -> integer -- return number of occurrences of value\n", - " | \n", - " | extend(...)\n", - " | L.extend(iterable) -> None -- extend list by appending elements from the iterable\n", - " | \n", - " | index(...)\n", - " | L.index(value, [start, [stop]]) -> integer -- return first index of value.\n", - " | Raises ValueError if the value is not present.\n", - " | \n", - " | insert(...)\n", - " | L.insert(index, object) -- insert object before index\n", - " | \n", - " | pop(...)\n", - " | L.pop([index]) -> item -- remove and return item at index (default last).\n", - " | Raises IndexError if list is empty or index is out of range.\n", - " | \n", - " | remove(...)\n", - " | L.remove(value) -> None -- remove first occurrence of value.\n", - " | Raises ValueError if the value is not present.\n", - " | \n", - " | reverse(...)\n", - " | L.reverse() -- reverse *IN PLACE*\n", - " | \n", - " | sort(...)\n", - " | L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Data and other attributes defined here:\n", - " | \n", - " | __hash__ = None\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "help(list)" ] @@ -613,25 +415,14 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[1, 2, 3, 4, 5, 6]" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "extend_list = [1, 2, 3]\n", "extend_list.extend([4, 5, 6])\n", @@ -651,25 +442,14 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[1, 2, 4, 5, 6]" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "del extend_list[2]\n", "extend_list" @@ -677,25 +457,14 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[1, 4, 5, 6]" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "del extend_list[1:3]\n", "extend_list" @@ -703,26 +472,14 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'extend_list' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mdel\u001b[0m \u001b[0mextend_list\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mextend_list\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNameError\u001b[0m: name 'extend_list' is not defined" - ] - } - ], + "outputs": [], "source": [ "del extend_list\n", "print(extend_list)" @@ -741,25 +498,14 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "7" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "stack = [3, 4, 5, 6, 7]\n", "stack.pop()" @@ -767,57 +513,35 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "10" - ] - }, - "execution_count": 49, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "stack.pop()" ] }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[3, 4, 5]" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "stack" ] }, { "cell_type": "code", - "execution_count": 45, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -831,25 +555,14 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[3, 4, 5]" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "stack" ] @@ -878,25 +591,14 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "3" - ] - }, - "execution_count": 51, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "queue = [3, 4, 5, 6, 7]\n", "queue.pop(0)" @@ -904,25 +606,14 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[4, 5, 6, 7, 10]" - ] - }, - "execution_count": 52, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "queue.append(10)\n", "queue" @@ -941,25 +632,14 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'Eric'" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from collections import deque\n", "queue = deque([\"Eric\", \"John\", \"Michael\"])\n", @@ -970,50 +650,28 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'John'" - ] - }, - "execution_count": 54, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "queue.popleft() # The second to arrive now leaves" ] }, { "cell_type": "code", - "execution_count": 55, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "deque(['Michael', 'Terry', 'Graham'])" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "queue # Remaining queue in order of arrival" ] @@ -1042,25 +700,14 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" - ] - }, - "execution_count": 56, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "squares = []\n", "for x in range(10):\n", @@ -1082,25 +729,14 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" - ] - }, - "execution_count": 57, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "[x**2 for x in range(10)]" ] @@ -1118,25 +754,14 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" - ] - }, - "execution_count": 58, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "[(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]" ] @@ -1154,34 +779,14 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[(3, 4, 5),\n", - " (5, 12, 13),\n", - " (6, 8, 10),\n", - " (7, 24, 25),\n", - " (8, 15, 17),\n", - " (9, 12, 15),\n", - " (10, 24, 26),\n", - " (12, 16, 20),\n", - " (15, 20, 25),\n", - " (20, 21, 29)]" - ] - }, - "execution_count": 59, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "n = 30\n", "[(x,y,z) for x in range(1,n) for y in range(x,n) for z in range(y,n) if x**2 + y**2 == z**2]" @@ -1189,33 +794,14 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('THE', 'the', 3),\n", - " ('QUICK', 'quick', 5),\n", - " ('BROWN', 'brown', 5),\n", - " ('FOX', 'fox', 3),\n", - " ('JUMPS', 'jumps', 5),\n", - " ('OVER', 'over', 4),\n", - " ('THE', 'the', 3),\n", - " ('LAZY', 'lazy', 4),\n", - " ('DOG', 'dog', 3)]" - ] - }, - "execution_count": 60, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "words = 'The quick brown fox jumps over the lazy dog'.split()\n", "[(w.upper(), w.lower(), len(w)) for w in words]" @@ -1234,27 +820,14 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "({0, 1, 4, 9, 16, 25, 36, 49, 64, 81},\n", - " {0, 1, 8, 27, 64, 125, 216, 343, 512, 729},\n", - " {0, 1, 64})" - ] - }, - "execution_count": 61, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "a = { x**2 for x in range(10)}\n", "b = { x**3 for x in range(10)}\n", @@ -1263,25 +836,14 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'ala', 'kota', 'ma'}" - ] - }, - "execution_count": 63, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "new_set = {i for i in ['ala', 'ma', 'kota', 'kota']}\n", "new_set" @@ -1300,25 +862,14 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'a': 17, 'b': 34, 'z': 3}" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mcase = {'a':10, 'b': 34, 'A': 7, 'Z':3}\n", "mcase_frequency = { k.lower() : mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys() }\n", @@ -1353,50 +904,28 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - ">" - ] - }, - "execution_count": 64, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "lambda x: x + 1" ] }, { "cell_type": "code", - "execution_count": 65, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "3" - ] - }, - "execution_count": 65, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "operator_dodaj = lambda x, y: x + y\n", "operator_dodaj(1, 2)" @@ -1404,25 +933,14 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'big'" - ] - }, - "execution_count": 69, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tell = lambda x: \"big\" if x > 100 else \"small\"\n", "tell(1332)" @@ -1430,25 +948,14 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'bla bla bli blu blurp'" - ] - }, - "execution_count": 70, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "f = lambda s : \" \".join(s.split())\n", "text = '''bla bla\n", @@ -1482,23 +989,14 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sta (5, 2, 3, 1, 4) \n", - "nowa [1, 2, 3, 4, 5] \n" - ] - } - ], + "outputs": [], "source": [ "sta = (5, 2, 3, 1, 4)\n", "nowa = sorted(sta)\n", @@ -1519,25 +1017,14 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[5, 4, 3, 2, 1]" - ] - }, - "execution_count": 78, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "a = [5, 2, 3, 1, 4]\n", "a.sort(reverse=True)\n", @@ -1557,25 +1044,14 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('apple', 3), ('banana', 2), ('orange', 1)]" - ] - }, - "execution_count": 79, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "fruits = [('apple', 3), ('orange', 1), ('banana', 2)]\n", "sorted(fruits, key=lambda fruit: fruit[0])" @@ -1583,25 +1059,14 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('orange', 1), ('banana', 2), ('apple', 3)]" - ] - }, - "execution_count": 80, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sorted(fruits, key=lambda fruit: fruit[1])" ] @@ -1619,25 +1084,14 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "['A', 'C', 'Z', 'a', 'c', 'z']" - ] - }, - "execution_count": 81, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "chars = ['Z', 'z', 'C', 'c', 'A', 'a']\n", "sorted(chars)" @@ -1645,25 +1099,14 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "['A', 'a', 'C', 'c', 'Z', 'z']" - ] - }, - "execution_count": 82, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sorted(chars, key=str.lower)" ] @@ -1681,25 +1124,14 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]" - ] - }, - "execution_count": 83, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from operator import itemgetter\n", "sorted([('red', 1), ('blue', 1), ('red', 2), ('blue', 2)], key=itemgetter(1))" @@ -1742,25 +1174,14 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "dict_items([('John', [('berries', 1), ('orange', 10)]), ('Merry', [('apple', 5), ('orange', 3)]), ('Tom', [('peaches', 2)])])" - ] - }, - "execution_count": 84, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "fruits = {\n", " 'Merry': [\n", @@ -1791,25 +1212,14 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('Merry', [('apple', 5), ('orange', 3)]), ('Tom', [('peaches', 2)])]" - ] - }, - "execution_count": 85, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "f = filter(lambda x: x[0] in ['Merry', 'Tom'], fruits.items())\n", "[it for it in f]" @@ -1828,25 +1238,14 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[[('apple', 5), ('orange', 3)], [('peaches', 2)]]" - ] - }, - "execution_count": 86, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mapa1 = map(lambda y: y[1], \n", " filter(lambda x: x[0] in ['Merry', 'Tom'], fruits.items())\n", @@ -1867,25 +1266,14 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[[('apple', 5), ('orange', 3)], [('peaches', 2)]]" - ] - }, - "execution_count": 87, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "[item[1] for item in fruits.items() if item[0] in {'Merry','Tom'}]" ] @@ -1903,25 +1291,14 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('apple', 5), ('orange', 3), ('peaches', 2)]" - ] - }, - "execution_count": 88, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from itertools import chain\n", "list(chain(\n", @@ -1933,25 +1310,14 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('apple', 5), ('orange', 3), ('peaches', 2)]" - ] - }, - "execution_count": 89, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "list(chain(*[item[1] for item in fruits.items() if item[0] in {'Merry','Tom'}]))" ] @@ -1969,25 +1335,14 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[5, 3, 2]" - ] - }, - "execution_count": 90, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mapa2 = map(lambda f: f[1], \n", " chain(\n", @@ -2012,25 +1367,14 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "10" - ] - }, - "execution_count": 91, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sum( \n", " map(lambda f: f[1], \n", @@ -2045,25 +1389,14 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "10" - ] - }, - "execution_count": 92, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sum(it[1] for it in chain(*[item[1] for item in fruits.items() if item[0] in {'Merry','Tom'}]))" ] @@ -2081,25 +1414,14 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "10" - ] - }, - "execution_count": 93, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import operator\n", "import functools\n", @@ -2138,27 +1460,14 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'apple': 1, 'peach': 3, 'orange': 2}\n", - "False\n", - "{'apple': 10, 'peach': 3, 'orange': 2}\n", - "False\n", - "{'apple': 1, 'banana': 4, 'peach': 3, 'orange': 2}\n", - "True\n" - ] - } - ], + "outputs": [], "source": [ "def some_function(**kwargs):\n", " defaults = {\n", @@ -2188,25 +1497,14 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}" - ] - }, - "execution_count": 98, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "new_dict = {key: value for key, value in [('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')]}\n", "new_dict" @@ -2256,7 +1554,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -2270,25 +1568,14 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# czy obiekt l (lista) ma atrybut __iter__ ?\n", "'__iter__' in dir(l)" @@ -2296,25 +1583,14 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "list_iterator" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# pobieramy iterator\n", "it = iter(l) \n", @@ -2324,26 +1600,14 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "ename": "StopIteration", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mStopIteration\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# iterujemy\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mnext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mit\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;31m# it.__next__() # alternatywnie\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mStopIteration\u001b[0m: " - ] - } - ], + "outputs": [], "source": [ "# iterujemy\n", "next(it)\n", @@ -2352,56 +1616,14 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "['__class__',\n", - " '__contains__',\n", - " '__delattr__',\n", - " '__dir__',\n", - " '__doc__',\n", - " '__eq__',\n", - " '__format__',\n", - " '__ge__',\n", - " '__getattribute__',\n", - " '__getitem__',\n", - " '__gt__',\n", - " '__hash__',\n", - " '__init__',\n", - " '__iter__',\n", - " '__le__',\n", - " '__len__',\n", - " '__lt__',\n", - " '__ne__',\n", - " '__new__',\n", - " '__reduce__',\n", - " '__reduce_ex__',\n", - " '__repr__',\n", - " '__reversed__',\n", - " '__setattr__',\n", - " '__sizeof__',\n", - " '__str__',\n", - " '__subclasshook__',\n", - " 'count',\n", - " 'index',\n", - " 'start',\n", - " 'step',\n", - " 'stop']" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "r = range(10)\n", "dir(r)" @@ -2409,25 +1631,14 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "range_iterator" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "it = iter(r)\n", "type(it)" @@ -2435,25 +1646,14 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "3" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "next(it)" ] @@ -2482,7 +1682,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -2497,32 +1697,14 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - }, - { - "data": { - "text/plain": [ - "tuple" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "print(type(g))\n", "type(h)" @@ -2530,83 +1712,28 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "['__class__',\n", - " '__del__',\n", - " '__delattr__',\n", - " '__dir__',\n", - " '__doc__',\n", - " '__eq__',\n", - " '__format__',\n", - " '__ge__',\n", - " '__getattribute__',\n", - " '__gt__',\n", - " '__hash__',\n", - " '__init__',\n", - " '__iter__',\n", - " '__le__',\n", - " '__lt__',\n", - " '__name__',\n", - " '__ne__',\n", - " '__new__',\n", - " '__next__',\n", - " '__qualname__',\n", - " '__reduce__',\n", - " '__reduce_ex__',\n", - " '__repr__',\n", - " '__setattr__',\n", - " '__sizeof__',\n", - " '__str__',\n", - " '__subclasshook__',\n", - " 'close',\n", - " 'gi_code',\n", - " 'gi_frame',\n", - " 'gi_running',\n", - " 'gi_yieldfrom',\n", - " 'send',\n", - " 'throw']" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "dir(g)" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "16" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "next(g)" ] @@ -2624,7 +1751,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -2644,32 +1771,21 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "fib()" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -2683,50 +1799,28 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "next(it)" ] }, { "cell_type": "code", - "execution_count": 47, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "list(it)" ] @@ -2755,25 +1849,14 @@ }, { "cell_type": "code", - "execution_count": 151, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" - ] - }, - "execution_count": 151, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "[i*i for i in range(10)]" ] @@ -2802,25 +1885,14 @@ }, { "cell_type": "code", - "execution_count": 152, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[1, 2, 3, 4, 5, 6]" - ] - }, - "execution_count": 152, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "from itertools import * # normalnie tak nie importujemy \n", "list(chain([1, 2, 3], [4, 5, 6]))" @@ -2828,144 +1900,70 @@ }, { "cell_type": "code", - "execution_count": 153, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]" - ] - }, - "execution_count": 153, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "list(combinations('ABCD', 2))" ] }, { "cell_type": "code", - "execution_count": 154, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('A', 'B'),\n", - " ('A', 'C'),\n", - " ('A', 'D'),\n", - " ('B', 'A'),\n", - " ('B', 'C'),\n", - " ('B', 'D'),\n", - " ('C', 'A'),\n", - " ('C', 'B'),\n", - " ('C', 'D'),\n", - " ('D', 'A'),\n", - " ('D', 'B'),\n", - " ('D', 'C')]" - ] - }, - "execution_count": 154, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "list(permutations('ABCD', 2))" ] }, { "cell_type": "code", - "execution_count": 155, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('A', 'A'),\n", - " ('A', 'B'),\n", - " ('A', 'C'),\n", - " ('A', 'D'),\n", - " ('B', 'B'),\n", - " ('B', 'C'),\n", - " ('B', 'D'),\n", - " ('C', 'C'),\n", - " ('C', 'D'),\n", - " ('D', 'D')]" - ] - }, - "execution_count": 155, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "list(combinations_with_replacement('ABCD', 2))" ] }, { "cell_type": "code", - "execution_count": 156, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('A', 'X'), ('A', 'Y'), ('B', 'X'), ('B', 'Y'), ('C', 'X'), ('C', 'Y')]" - ] - }, - "execution_count": 156, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "list(product('ABC', 'XY'))" ] }, { "cell_type": "code", - "execution_count": 157, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]\n", - "[]\n" - ] - } - ], + "outputs": [], "source": [ "iterator = permutations('ABC', 2)\n", "print(iterator)\n", @@ -2975,25 +1973,14 @@ }, { "cell_type": "code", - "execution_count": 158, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]\n", - "[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]\n", - "[]\n" - ] - } - ], + "outputs": [], "source": [ "iterator = permutations('ABC', 2)\n", "iterator1, iterator2 = tee(iterator, 2)\n", From 34acb3fae171afb0dcbb10139022fbd502e3291b Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 30 Jan 2016 16:55:22 +0100 Subject: [PATCH 17/22] Update L3.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Usunięte komórki wyjściowe --- L3.ipynb | 443 ++++++++++--------------------------------------------- 1 file changed, 76 insertions(+), 367 deletions(-) diff --git a/L3.ipynb b/L3.ipynb index 9dad053..8205cea 100644 --- a/L3.ipynb +++ b/L3.ipynb @@ -46,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -64,22 +64,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "137\n" - ] - } - ], + "outputs": [], "source": [ "outer()" ] @@ -97,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -114,25 +106,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "4" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "apply(add,2,2)" ] @@ -150,7 +131,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -169,55 +150,35 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "id(n): 7F35CAF33700\n", - "id(nth_power): 7F35B9B77EA0\n" - ] - } - ], + "outputs": [], "source": [ "raised_to_4 = generate_power_func(4)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'.nth_power at 0x7f35b9b77ea0>'" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "repr(raised_to_4)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -231,76 +192,42 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'generate_power_func' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mgenerate_power_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;31mNameError\u001b[0m: name 'generate_power_func' is not defined" - ] - } - ], + "outputs": [], "source": [ "generate_power_func(1)" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "81" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "raised_to_4(3)" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "4" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "raised_to_4.__closure__[0].cell_contents" ] @@ -318,7 +245,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -340,24 +267,14 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "outer pre 137\n", - "inner 137\n", - "outer post 0\n" - ] - } - ], + "outputs": [], "source": [ "outer()" ] @@ -433,7 +350,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -451,7 +368,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -466,29 +383,21 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Just a simple method printing 1.\n" - ] - } - ], + "outputs": [], "source": [ "f(1)" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -502,30 +411,21 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "But now, I am enhanced\n", - "Just a simple method printing 1.\n" - ] - } - ], + "outputs": [], "source": [ "f(1)" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -541,30 +441,21 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "But now, I am enhanced\n", - "Another simple method printing 2.\n" - ] - } - ], + "outputs": [], "source": [ "g(2)" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -582,7 +473,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -599,24 +490,14 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "But now, I am very enhanced\n", - "But now, I am enhanced\n", - "So simple method printing 3.\n" - ] - } - ], + "outputs": [], "source": [ "h(3)" ] @@ -660,25 +541,14 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'hello world'" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "class MyClass:\n", " \n", @@ -697,44 +567,28 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "12345\n" - ] - } - ], + "outputs": [], "source": [ "print(MyClass.i)" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "12345\n" - ] - } - ], + "outputs": [], "source": [ "m2 = MyClass()\n", "print(m2.i)" @@ -742,22 +596,14 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "12344 12345 12345\n" - ] - } - ], + "outputs": [], "source": [ "#podstawienie\n", "m.i -= 1\n", @@ -766,26 +612,14 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1\n", - "\n", - "2\n", - "4\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "class MyClass(object):\n", " \n", @@ -812,26 +646,14 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "1\n", - "\n", - "2\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "class MyClass(object):\n", " \n", @@ -859,7 +681,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -903,23 +725,14 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['_MyClass__n', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']\n", - "12345\n" - ] - } - ], + "outputs": [], "source": [ "class MyClass:\n", " \n", @@ -959,7 +772,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -982,25 +795,14 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1\n", - "\n", - "Looking for m\n", - "0\n" - ] - } - ], + "outputs": [], "source": [ "a = MyClass()\n", "\n", @@ -1013,24 +815,14 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'__dict__': , '__module__': '__main__', '__doc__': ' To jest docstring ', '__getattr__': , '__init__': , '__weakref__': }\n", - "\n", - "{'n': 1}\n" - ] - } - ], + "outputs": [], "source": [ "print(MyClass.__dict__)\n", "\n", @@ -1041,24 +833,14 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "False\n", - "\n", - "17\n" - ] - } - ], + "outputs": [], "source": [ "class Borg:\n", "\n", @@ -1079,7 +861,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -1106,29 +888,14 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Setting n at 1\n", - "Looking for n\n", - "0\n", - "Looking for m\n", - "0\n", - "\n", - "Setting n at 3\n", - "Setting m at 2\n" - ] - } - ], + "outputs": [], "source": [ "a = MyClass()\n", "\n", @@ -1143,7 +910,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -1172,22 +939,14 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3\n" - ] - } - ], + "outputs": [], "source": [ "c = C()\n", "\n", @@ -1207,7 +966,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -1226,24 +985,14 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Entering func1\n", - "inside func1()\n", - "Exited func1\n" - ] - } - ], + "outputs": [], "source": [ "@entryExit\n", "def func1():\n", @@ -1253,7 +1002,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -1282,56 +1031,35 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "__main__.entryExit" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "type(func1)" ] }, { "cell_type": "code", - "execution_count": 56, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Entering func1 12 times\n", - "inside func1()\n", - "Exited func1\n" - ] - } - ], + "outputs": [], "source": [ "func1()" ] }, { "cell_type": "code", - "execution_count": 57, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -1355,22 +1083,14 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "10\n" - ] - } - ], + "outputs": [], "source": [ "@Decorator(\"decorated class\")\n", "class TestClass(object):\n", @@ -1385,25 +1105,14 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'decorated class'" - ] - }, - "execution_count": 60, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "t.classattr" ] From b9a8bae06b11781c4018e86aaabf66df20a3ec52 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 30 Jan 2016 16:56:02 +0100 Subject: [PATCH 18/22] Update L4.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Usunięte komórki wyjściowe --- L4.ipynb | 5892 ++---------------------------------------------------- 1 file changed, 116 insertions(+), 5776 deletions(-) diff --git a/L4.ipynb b/L4.ipynb index 98aeaee..6533cd5 100644 --- a/L4.ipynb +++ b/L4.ipynb @@ -141,26 +141,14 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{\n", - " \"cells\": [\n", - " {\n", - " \"cell_type\": \"markdown\",\n", - " \"\n" - ] - } - ], + "outputs": [], "source": [ "with open('L4.ipynb') as notebook:\n", " print(notebook.read(50))" @@ -168,25 +156,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "<_io.TextIOWrapper name='L4.ipynb' mode='r' encoding='UTF-8'>" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "notebook" ] @@ -228,24 +205,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Context prepared\n", - "Hello None\n", - "Context closed None None None\n" - ] - } - ], + "outputs": [], "source": [ "class MyContextManager():\n", " \n", @@ -262,34 +229,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Context prepared\n", - "Context closed \n" - ] - }, - { - "ename": "Exception", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mMyContextManager\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 12\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mException\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;31mException\u001b[0m: " - ] - } - ], + "outputs": [], "source": [ "class MyContextManager():\n", " \n", @@ -318,28 +265,14 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "

\n", - "foo\n", - "

\n", - "\n", - "
\n", - "foo\n", - "
\n" - ] - } - ], + "outputs": [], "source": [ "from contextlib import contextmanager\n", "\n", @@ -371,22 +304,14 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "doing sth with /tmp/tmpv3i4oywk.temp\n" - ] - } - ], + "outputs": [], "source": [ "from tempfile import mkdtemp\n", "from shutil import rmtree\n", @@ -429,24 +354,14 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[<__main__.T object at 0x7f7900120198>, <__main__.T object at 0x7f79001201d0>, <__main__.T object at 0x7f7900120128>]\n", - "<__main__.T object at 0x7f7900120160>\n", - "<__main__.T object at 0x7f79001201d0>\n" - ] - } - ], + "outputs": [], "source": [ "class T:\n", " pass\n", @@ -458,24 +373,14 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[T class, T class, T class]\n", - "T class\n", - "T class\n" - ] - } - ], + "outputs": [], "source": [ "class T:\n", " def __repr__(self):\n", @@ -499,24 +404,14 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Porsche 911 (3.6 L)\n", - "<__main__.Car object at 0x7f79000abcc0>\n", - "Porsche 911 (3.6 L)\n" - ] - } - ], + "outputs": [], "source": [ "class Car:\n", " def __init__(self, vendor, model, ccm):\n", @@ -556,5091 +451,14 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "comparing to 1 1\n", - "comparing to 1 2\n", - "comparing to 1 2\n", - "comparing to 1 3\n", - "comparing to 1 3\n", - "comparing to 1 3\n", - "comparing to 1 4\n", - "comparing to 1 4\n", - "comparing to 1 4\n", - "comparing to 1 4\n", - "comparing to 1 5\n", - "comparing to 1 5\n", - "comparing to 1 5\n", - "comparing to 1 5\n", - "comparing to 1 5\n", - "comparing to 1 6\n", - "comparing to 1 6\n", - "comparing to 1 6\n", - "comparing to 1 6\n", - "comparing to 1 6\n", - "comparing to 1 6\n", - "comparing to 1 7\n", - "comparing to 1 7\n", - "comparing to 1 7\n", - "comparing to 1 7\n", - "comparing to 1 7\n", - "comparing to 1 7\n", - "comparing to 1 7\n", - "comparing to 1 7\n", - "comparing to 1 8\n", - "comparing to 1 8\n", - "comparing to 1 8\n", - "comparing to 1 8\n", - "comparing to 1 8\n", - "comparing to 1 8\n", - "comparing to 1 8\n", - "comparing to 1 8\n", - "comparing to 1 8\n", - "comparing to 1 9\n", - "comparing to 1 9\n", - "comparing to 1 9\n", - "comparing to 1 9\n", - "comparing to 1 9\n", - "comparing to 1 9\n", - "comparing to 1 9\n", - "comparing to 1 9\n", - "comparing to 1 9\n", - "comparing to 1 9\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 11\n", - "comparing to 1 11\n", - "comparing to 1 11\n", - "comparing to 1 11\n", - "comparing to 1 11\n", - "comparing to 1 11\n", - "comparing to 1 11\n", - "comparing to 1 11\n", - "comparing to 1 11\n", - "comparing to 1 11\n", - "comparing to 1 11\n", - "comparing to 1 11\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 12\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 13\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 14\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 15\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 16\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 17\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 18\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 19\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 20\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 21\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 22\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 23\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 24\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 25\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 26\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 27\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 28\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 29\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 30\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 31\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 32\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 33\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 34\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 35\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 36\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 37\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 38\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 39\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 40\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 41\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 42\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 43\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 44\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 45\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 46\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 47\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 48\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 49\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 50\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 51\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 52\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 53\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 54\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 55\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 56\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 57\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 58\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 59\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 60\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 61\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 62\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 63\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 64\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 65\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 66\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 67\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 68\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 69\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 70\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 71\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 72\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 73\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 74\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 75\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 76\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 77\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 78\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 79\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 80\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 81\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 82\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 83\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 84\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 85\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 86\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 87\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 88\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 89\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 90\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 91\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 92\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 93\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 94\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 95\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 96\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 97\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 98\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 99\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n", - "comparing to 1 10\n" - ] - }, - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "class T:\n", " def __init__(self,x,y):\n", @@ -5674,122 +492,70 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "bool(None)" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "bool(0)" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "bool([1,3,4])" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "bool(\"\")" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "True\n" - ] - } - ], + "outputs": [], "source": [ "class T:\n", " def __len__(self):\n", @@ -5799,23 +565,14 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "140157668844768\n", - "False\n" - ] - } - ], + "outputs": [], "source": [ "class T:\n", " def __bool__(self):\n", @@ -5840,25 +597,14 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "int" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "x = 5\n", "x.__class__" @@ -5866,50 +612,28 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "int" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "type(x)" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "type" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "type(int)" ] @@ -5927,23 +651,14 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3\n", - "True\n" - ] - } - ], + "outputs": [], "source": [ "class T():\n", " \n", @@ -5966,50 +681,28 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "iter(t)" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "[1, 2, 3]" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "list(iter(t))" ] @@ -6027,25 +720,14 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# czy jest to ta sama wartość?\n", "a = 100000\n", @@ -6055,25 +737,14 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# czy jest to ten sam obiekt?\n", "a = 100000\n", @@ -6083,25 +754,14 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(True, True)" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# pułapki optymalizacji CPythona\n", "a = 1\n", @@ -6111,25 +771,14 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(False, True)" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# porównanie w przypadku klas\n", "class T:\n", @@ -6142,25 +791,14 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# porównanie w przypadku klas\n", "class T:\n", @@ -6184,7 +822,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -6207,33 +845,14 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "140157668845328 140157668843704\n", - "18062664 18062664\n" - ] - }, - { - "data": { - "text/plain": [ - "'0xb67e144c'" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "door1 = Door(1, 'closed')\n", "door2 = Door(1, 'closed')\n", @@ -6244,7 +863,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -6269,7 +888,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -6284,104 +903,63 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "140157671496760 140157671496760 140157671496760\n" - ] - } - ], + "outputs": [], "source": [ "print(id(Door.colour),id(door1.colour),id(door2.colour))" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "('brown', 'brown', 'brown')" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "Door.colour, door1.colour, door2.colour" ] }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "mappingproxy({'__init__': , '__dict__': , '__module__': '__main__', 'open': , '__weakref__': , 'colour': 'brown', 'close': , '__doc__': None})" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "Door.__dict__" ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'number': 1, 'status': 'closed'}" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "door1.__dict__" ] }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -6395,75 +973,42 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "Door.open" ] }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - ">" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "door1.open" ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - ">" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "door1.__class__.__dict__['open'].__get__(door1)" ] @@ -6481,7 +1026,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -6496,7 +1041,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -6510,174 +1055,98 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'number': 1, 'status': 'closed'}" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sdoor.__dict__" ] }, { "cell_type": "code", - "execution_count": 44, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "mappingproxy({'__module__': '__main__', '__doc__': None})" - ] - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "SecurityDoor.__dict__" ] }, { "cell_type": "code", - "execution_count": 45, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(__main__.Door,)" - ] - }, - "execution_count": 45, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "SecurityDoor.__bases__" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - ">" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sdoor.open" ] }, { "cell_type": "code", - "execution_count": 47, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "ename": "KeyError", - "evalue": "'open'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0msdoor\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__class__\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__dict__\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'open'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__get__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msdoor\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;31mKeyError\u001b[0m: 'open'" - ] - } - ], + "outputs": [], "source": [ "sdoor.__class__.__dict__['open'].__get__(sdoor)" ] }, { "cell_type": "code", - "execution_count": 48, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - ">" - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "sdoor.__class__.__bases__[0].__dict__['open'].__get__(sdoor)" ] }, { "cell_type": "code", - "execution_count": 51, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "B1\n", - "(, , , , )\n" - ] - } - ], + "outputs": [], "source": [ "class A:\n", " def foo(self):\n", @@ -6736,26 +1205,14 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "ename": "TypeError", - "evalue": "Cannot create a consistent method resolution\norder (MRO) for bases X, Y", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mclass\u001b[0m \u001b[0mA\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mY\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32mclass\u001b[0m \u001b[0mB\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mY\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[1;32mclass\u001b[0m \u001b[0mC\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mA\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mB\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m \u001b[0mC\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__mro__\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mTypeError\u001b[0m: Cannot create a consistent method resolution\norder (MRO) for bases X, Y" - ] - } - ], + "outputs": [], "source": [ "class X: pass\n", "class Y: pass\n", @@ -6800,22 +1257,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(, , , , , , )\n" - ] - } - ], + "outputs": [], "source": [ "class F(): pass\n", "class E(): pass\n", @@ -6839,48 +1288,28 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "ename": "TypeError", - "evalue": "unsupported operand type(s) for +: 'int' and 'str'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;36m5\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m'5'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m: unsupported operand type(s) for +: 'int' and 'str'" - ] - } - ], + "outputs": [], "source": [ "5 + '5'" ] }, { "cell_type": "code", - "execution_count": 54, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "no-no\n" - ] - } - ], + "outputs": [], "source": [ "try:\n", " 5 + '5'\n", @@ -6890,22 +1319,14 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " unsupported operand type(s) for +: 'int' and 'str'\n" - ] - } - ], + "outputs": [], "source": [ "try:\n", " 5 + '5'\n", @@ -6915,22 +1336,14 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " unsupported operand type(s) for +: 'int' and 'str'\n" - ] - } - ], + "outputs": [], "source": [ "try:\n", " 5 + '5'\n", @@ -6940,22 +1353,14 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 'T' object does not support indexing\n" - ] - } - ], + "outputs": [], "source": [ "try:\n", " a[3]\n", @@ -6967,23 +1372,14 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "good good good\n", - "bye!\n" - ] - } - ], + "outputs": [], "source": [ "class WrongAnswerError(Exception):\n", " pass\n", @@ -6998,26 +1394,14 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "ename": "TypeError", - "evalue": "exceptions must derive from BaseException", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mpass\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mA\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m: exceptions must derive from BaseException" - ] - } - ], + "outputs": [], "source": [ "class A:\n", " pass\n", @@ -7027,100 +1411,56 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(object,)" - ] - }, - "execution_count": 61, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "BaseException.__bases__" ] }, { "cell_type": "code", - "execution_count": 62, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(BaseException,)" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "Exception.__bases__" ] }, { "cell_type": "code", - "execution_count": 63, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(Exception,)" - ] - }, - "execution_count": 63, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "TypeError.__bases__" ] }, { "cell_type": "code", - "execution_count": 64, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(BaseException,)" - ] - }, - "execution_count": 64, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "KeyboardInterrupt.__bases__" ] From 0235c4589df3d32f907b9110572c00b094a2e7aa Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 30 Jan 2016 16:56:43 +0100 Subject: [PATCH 19/22] Update L5.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Usunięte komórki wyjściowe --- L5.ipynb | 481 +++++++++---------------------------------------------- 1 file changed, 78 insertions(+), 403 deletions(-) diff --git a/L5.ipynb b/L5.ipynb index 85c035a..4bebe21 100644 --- a/L5.ipynb +++ b/L5.ipynb @@ -40,25 +40,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "b'\\x15\\x0e<\\xea\\xe0Kz`\\xe9\\xafX\\xd2%!\\xaf\\xad[W\\x1b5'" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "import os\n", "os.urandom(20)" @@ -66,25 +55,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "b'\\xa3rK\\xe4'\n", - "abcpumpkins\n", - "pumpkins\n", - "b'l\\xb7\\xd0\\x9c'\n" - ] - } - ], + "outputs": [], "source": [ "from unittest.mock import patch\n", "\n", @@ -100,22 +78,14 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "opening 1.txt\n" - ] - } - ], + "outputs": [], "source": [ "def new_open(a,b):\n", " print(\"opening \", a)\n", @@ -138,7 +108,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -154,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -173,25 +143,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "2.8284271247461903" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "p1 = Point2D(2,2)\n", "p1.r()" @@ -199,32 +158,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "fooo\n" - ] - }, - { - "data": { - "text/plain": [ - "4.242640687119285" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "class Point2Dmix(FooMixin,Point2D):\n", " pass\n", @@ -246,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -263,25 +204,14 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'active_children', 'collect_children', 'max_children'}" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "class ThreadingTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):\n", " pass\n", @@ -293,7 +223,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -373,7 +303,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -388,22 +318,14 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "<__main__.ObjectCreator object at 0x7f8abf4d3e80>\n" - ] - } - ], + "outputs": [], "source": [ "print(ObjectCreator())" ] @@ -421,22 +343,14 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "print(ObjectCreator)" ] @@ -461,22 +375,14 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "<__main__.ObjectCreator object at 0x7f8abf4d3f60>\n" - ] - } - ], + "outputs": [], "source": [ "FooCreator = ObjectCreator\n", "print(FooCreator())" @@ -484,29 +390,21 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "False\n" - ] - } - ], + "outputs": [], "source": [ "print(hasattr(ObjectCreator, 'bar'))" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -520,44 +418,28 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "True\n" - ] - } - ], + "outputs": [], "source": [ "print(hasattr(ObjectCreator, 'bar'))" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "def echo(x):\n", " print(x)\n", @@ -589,7 +471,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -611,23 +493,14 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - ".Foo'>\n", - ".Bar'>\n" - ] - } - ], + "outputs": [], "source": [ "print(choose_class('foo'))\n", "print(choose_class('bar'))" @@ -635,22 +508,14 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "<__main__.choose_class..Bar object at 0x7f8abf55f0f0>\n" - ] - } - ], + "outputs": [], "source": [ "print(choose_class('bar')())" ] @@ -672,110 +537,70 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "print(type(1))" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "print(type(\"1\"))" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "print(type(ObjectCreator()))" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "print(type(ObjectCreator))" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "class MyShinyClass():\n", " pass\n", @@ -784,44 +609,28 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "print(type('MyShinyClass', (), {}))" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "<__main__.MyShinyClass object at 0x7f8abfda9fd0>\n" - ] - } - ], + "outputs": [], "source": [ "ms = type('MyShinyClass', (), {})\n", "print(ms())" @@ -829,7 +638,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -847,22 +656,14 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "True False\n" - ] - } - ], + "outputs": [], "source": [ "FooChild = type('FooChild', (Foo,), {'baz': False})\n", "ob = FooChild()\n", @@ -952,22 +753,14 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "age = 35\n", "print(age.__class__)" @@ -975,22 +768,14 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "name = 'bob'\n", "print(name.__class__)" @@ -998,22 +783,14 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "def foo(): pass\n", "print(foo.__class__)" @@ -1021,22 +798,14 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "print(ObjectCreator().__class__)" ] @@ -1054,66 +823,42 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "print(ObjectCreator.__class__.__class__)" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "print(age.__class__.__class__)" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "skip" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], + "outputs": [], "source": [ "print(name.__class__.__class__)" ] @@ -1227,7 +972,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -1258,7 +1003,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -1274,126 +1019,56 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "Foo.FOO" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "2" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "Foo.BAR" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "hasattr(Foo, 'bar')" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "['BAR',\n", - " 'FOO',\n", - " '__class__',\n", - " '__delattr__',\n", - " '__dict__',\n", - " '__dir__',\n", - " '__doc__',\n", - " '__eq__',\n", - " '__format__',\n", - " '__ge__',\n", - " '__getattribute__',\n", - " '__gt__',\n", - " '__hash__',\n", - " '__init__',\n", - " '__le__',\n", - " '__lt__',\n", - " '__module__',\n", - " '__ne__',\n", - " '__new__',\n", - " '__reduce__',\n", - " '__reduce_ex__',\n", - " '__repr__',\n", - " '__setattr__',\n", - " '__sizeof__',\n", - " '__str__',\n", - " '__subclasshook__',\n", - " '__weakref__']" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "dir(Foo())" ] @@ -1411,7 +1086,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -1448,7 +1123,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { From 99bef08babdb6afa9d00be8356f260a72908e98f Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 30 Jan 2016 16:57:28 +0100 Subject: [PATCH 20/22] Update L6.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Usunięte komórki wyjściowe --- L6.ipynb | 152 ++++++++++--------------------------------------------- 1 file changed, 26 insertions(+), 126 deletions(-) diff --git a/L6.ipynb b/L6.ipynb index 9cb47d1..fd4cec2 100644 --- a/L6.ipynb +++ b/L6.ipynb @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -51,32 +51,21 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'Represents a Foo'" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "Foo.__doc__" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -92,32 +81,21 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'Does foo and returns False'" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "foo_function.__doc__" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -148,36 +126,14 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "None\n", - "int(x=0) -> integer\n", - "int(x, base=10) -> integer\n", - "\n", - "Convert a number or string to an integer, or return 0 if no arguments\n", - "are given. If x is a number, return x.__int__(). For floating point\n", - "numbers, this truncates towards zero.\n", - "\n", - "If x is not a number or if base is given, then x must be a string,\n", - "bytes, or bytearray instance representing an integer literal in the\n", - "given base. The literal can be preceded by '+' or '-' and be surrounded\n", - "by whitespace. The base defaults to 10. Valid bases are 0 and 2-36.\n", - "Base 0 means to interpret the base from the string as an integer literal.\n", - ">>> int('0b100', base=0)\n", - "4\n" - ] - } - ], + "outputs": [], "source": [ "class A:\n", " attribute = 3\n", @@ -211,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -234,45 +190,28 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Calling decorated function\n", - "Called example function\n" - ] - } - ], + "outputs": [], "source": [ "example()" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "None\n" - ] - } - ], + "outputs": [], "source": [ "print(example.__doc__)" ] @@ -304,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -330,23 +269,14 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Docstring\n", - "example\n" - ] - } - ], + "outputs": [], "source": [ "print(example.__doc__)\n", "print(example.__name__)" @@ -844,7 +774,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -862,7 +792,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -877,7 +807,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -891,72 +821,42 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2\n" - ] - } - ], + "outputs": [], "source": [ "print(o2.x)" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(139983926022944, 139983926022944)" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "id(o1),id(o2)" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(True, True)" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "o1 is o2, o1 == o2" ] From 93f64d58784e2f0e6dd0c4d3f73766e1769274f9 Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 30 Jan 2016 16:58:09 +0100 Subject: [PATCH 21/22] Update L7.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Usunięte komórki wyjściowe --- L7.ipynb | 775 +++++-------------------------------------------------- 1 file changed, 63 insertions(+), 712 deletions(-) diff --git a/L7.ipynb b/L7.ipynb index e756ffe..5a797ed 100644 --- a/L7.ipynb +++ b/L7.ipynb @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -80,51 +80,28 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'a'" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "s[0]" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "ename": "TypeError", - "evalue": "'str' object does not support item assignment", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0ms\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'b'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m: 'str' object does not support item assignment" - ] - } - ], + "outputs": [], "source": [ "s[0] = 'b'" ] @@ -204,95 +181,56 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "' ! \" # $ % & \\' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\\\ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~'" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "\" \".join(chr(i) for i in range(32,127))" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a\n", - "b\n" - ] - } - ], + "outputs": [], "source": [ "print(\"a\\nb\")" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a\r\n", - "b\n" - ] - } - ], + "outputs": [], "source": [ "print(\"a\\r\\nb\")" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a\r", - "\r", - "b\n" - ] - } - ], + "outputs": [], "source": [ "print(\"a\\r\\rb\")" ] @@ -311,432 +249,42 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "bytes(10)" ] }, { "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": false, - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Help on class bytes in module builtins:\n", - "\n", - "class bytes(object)\n", - " | bytes(iterable_of_ints) -> bytes\n", - " | bytes(string, encoding[, errors]) -> bytes\n", - " | bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer\n", - " | bytes(int) -> bytes object of size given by the parameter initialized with null bytes\n", - " | bytes() -> empty bytes object\n", - " | \n", - " | Construct an immutable array of bytes from:\n", - " | - an iterable yielding integers in range(256)\n", - " | - a text string encoded using the specified encoding\n", - " | - any object implementing the buffer API.\n", - " | - an integer\n", - " | \n", - " | Methods defined here:\n", - " | \n", - " | __add__(self, value, /)\n", - " | Return self+value.\n", - " | \n", - " | __contains__(self, key, /)\n", - " | Return key in self.\n", - " | \n", - " | __eq__(self, value, /)\n", - " | Return self==value.\n", - " | \n", - " | __ge__(self, value, /)\n", - " | Return self>=value.\n", - " | \n", - " | __getattribute__(self, name, /)\n", - " | Return getattr(self, name).\n", - " | \n", - " | __getitem__(self, key, /)\n", - " | Return self[key].\n", - " | \n", - " | __getnewargs__(...)\n", - " | \n", - " | __gt__(self, value, /)\n", - " | Return self>value.\n", - " | \n", - " | __hash__(self, /)\n", - " | Return hash(self).\n", - " | \n", - " | __iter__(self, /)\n", - " | Implement iter(self).\n", - " | \n", - " | __le__(self, value, /)\n", - " | Return self<=value.\n", - " | \n", - " | __len__(self, /)\n", - " | Return len(self).\n", - " | \n", - " | __lt__(self, value, /)\n", - " | Return self copy of B\n", - " | \n", - " | Return a copy of B with only its first character capitalized (ASCII)\n", - " | and the rest lower-cased.\n", - " | \n", - " | center(...)\n", - " | B.center(width[, fillchar]) -> copy of B\n", - " | \n", - " | Return B centered in a string of length width. Padding is\n", - " | done using the specified fill character (default is a space).\n", - " | \n", - " | count(...)\n", - " | B.count(sub[, start[, end]]) -> int\n", - " | \n", - " | Return the number of non-overlapping occurrences of substring sub in\n", - " | string B[start:end]. Optional arguments start and end are interpreted\n", - " | as in slice notation.\n", - " | \n", - " | decode(self, /, encoding='utf-8', errors='strict')\n", - " | Decode the bytes using the codec registered for encoding.\n", - " | \n", - " | encoding\n", - " | The encoding with which to decode the bytes.\n", - " | errors\n", - " | The error handling scheme to use for the handling of decoding errors.\n", - " | The default is 'strict' meaning that decoding errors raise a\n", - " | UnicodeDecodeError. Other possible values are 'ignore' and 'replace'\n", - " | as well as any other name registered with codecs.register_error that\n", - " | can handle UnicodeDecodeErrors.\n", - " | \n", - " | endswith(...)\n", - " | B.endswith(suffix[, start[, end]]) -> bool\n", - " | \n", - " | Return True if B ends with the specified suffix, False otherwise.\n", - " | With optional start, test B beginning at that position.\n", - " | With optional end, stop comparing B at that position.\n", - " | suffix can also be a tuple of bytes to try.\n", - " | \n", - " | expandtabs(...)\n", - " | B.expandtabs(tabsize=8) -> copy of B\n", - " | \n", - " | Return a copy of B where all tab characters are expanded using spaces.\n", - " | If tabsize is not given, a tab size of 8 characters is assumed.\n", - " | \n", - " | find(...)\n", - " | B.find(sub[, start[, end]]) -> int\n", - " | \n", - " | Return the lowest index in B where substring sub is found,\n", - " | such that sub is contained within B[start:end]. Optional\n", - " | arguments start and end are interpreted as in slice notation.\n", - " | \n", - " | Return -1 on failure.\n", - " | \n", - " | fromhex(string, /) from builtins.type\n", - " | Create a bytes object from a string of hexadecimal numbers.\n", - " | \n", - " | Spaces between two numbers are accepted.\n", - " | Example: bytes.fromhex('B9 01EF') -> b'\\\\xb9\\\\x01\\\\xef'.\n", - " | \n", - " | hex(...)\n", - " | B.hex() -> string\n", - " | \n", - " | Create a string of hexadecimal numbers from a bytes object.\n", - " | Example: b'\\xb9\\x01\\xef'.hex() -> 'b901ef'.\n", - " | \n", - " | index(...)\n", - " | B.index(sub[, start[, end]]) -> int\n", - " | \n", - " | Like B.find() but raise ValueError when the substring is not found.\n", - " | \n", - " | isalnum(...)\n", - " | B.isalnum() -> bool\n", - " | \n", - " | Return True if all characters in B are alphanumeric\n", - " | and there is at least one character in B, False otherwise.\n", - " | \n", - " | isalpha(...)\n", - " | B.isalpha() -> bool\n", - " | \n", - " | Return True if all characters in B are alphabetic\n", - " | and there is at least one character in B, False otherwise.\n", - " | \n", - " | isdigit(...)\n", - " | B.isdigit() -> bool\n", - " | \n", - " | Return True if all characters in B are digits\n", - " | and there is at least one character in B, False otherwise.\n", - " | \n", - " | islower(...)\n", - " | B.islower() -> bool\n", - " | \n", - " | Return True if all cased characters in B are lowercase and there is\n", - " | at least one cased character in B, False otherwise.\n", - " | \n", - " | isspace(...)\n", - " | B.isspace() -> bool\n", - " | \n", - " | Return True if all characters in B are whitespace\n", - " | and there is at least one character in B, False otherwise.\n", - " | \n", - " | istitle(...)\n", - " | B.istitle() -> bool\n", - " | \n", - " | Return True if B is a titlecased string and there is at least one\n", - " | character in B, i.e. uppercase characters may only follow uncased\n", - " | characters and lowercase characters only cased ones. Return False\n", - " | otherwise.\n", - " | \n", - " | isupper(...)\n", - " | B.isupper() -> bool\n", - " | \n", - " | Return True if all cased characters in B are uppercase and there is\n", - " | at least one cased character in B, False otherwise.\n", - " | \n", - " | join(self, iterable_of_bytes, /)\n", - " | Concatenate any number of bytes objects.\n", - " | \n", - " | The bytes whose method is called is inserted in between each pair.\n", - " | \n", - " | The result is returned as a new bytes object.\n", - " | \n", - " | Example: b'.'.join([b'ab', b'pq', b'rs']) -> b'ab.pq.rs'.\n", - " | \n", - " | ljust(...)\n", - " | B.ljust(width[, fillchar]) -> copy of B\n", - " | \n", - " | Return B left justified in a string of length width. Padding is\n", - " | done using the specified fill character (default is a space).\n", - " | \n", - " | lower(...)\n", - " | B.lower() -> copy of B\n", - " | \n", - " | Return a copy of B with all ASCII characters converted to lowercase.\n", - " | \n", - " | lstrip(self, bytes=None, /)\n", - " | Strip leading bytes contained in the argument.\n", - " | \n", - " | If the argument is omitted or None, strip leading ASCII whitespace.\n", - " | \n", - " | partition(self, sep, /)\n", - " | Partition the bytes into three parts using the given separator.\n", - " | \n", - " | This will search for the separator sep in the bytes. If the separator is found,\n", - " | returns a 3-tuple containing the part before the separator, the separator\n", - " | itself, and the part after it.\n", - " | \n", - " | If the separator is not found, returns a 3-tuple containing the original bytes\n", - " | object and two empty bytes objects.\n", - " | \n", - " | replace(self, old, new, count=-1, /)\n", - " | Return a copy with all occurrences of substring old replaced by new.\n", - " | \n", - " | count\n", - " | Maximum number of occurrences to replace.\n", - " | -1 (the default value) means replace all occurrences.\n", - " | \n", - " | If the optional argument count is given, only the first count occurrences are\n", - " | replaced.\n", - " | \n", - " | rfind(...)\n", - " | B.rfind(sub[, start[, end]]) -> int\n", - " | \n", - " | Return the highest index in B where substring sub is found,\n", - " | such that sub is contained within B[start:end]. Optional\n", - " | arguments start and end are interpreted as in slice notation.\n", - " | \n", - " | Return -1 on failure.\n", - " | \n", - " | rindex(...)\n", - " | B.rindex(sub[, start[, end]]) -> int\n", - " | \n", - " | Like B.rfind() but raise ValueError when the substring is not found.\n", - " | \n", - " | rjust(...)\n", - " | B.rjust(width[, fillchar]) -> copy of B\n", - " | \n", - " | Return B right justified in a string of length width. Padding is\n", - " | done using the specified fill character (default is a space)\n", - " | \n", - " | rpartition(self, sep, /)\n", - " | Partition the bytes into three parts using the given separator.\n", - " | \n", - " | This will search for the separator sep in the bytes, starting and the end. If\n", - " | the separator is found, returns a 3-tuple containing the part before the\n", - " | separator, the separator itself, and the part after it.\n", - " | \n", - " | If the separator is not found, returns a 3-tuple containing two empty bytes\n", - " | objects and the original bytes object.\n", - " | \n", - " | rsplit(self, /, sep=None, maxsplit=-1)\n", - " | Return a list of the sections in the bytes, using sep as the delimiter.\n", - " | \n", - " | sep\n", - " | The delimiter according which to split the bytes.\n", - " | None (the default value) means split on ASCII whitespace characters\n", - " | (space, tab, return, newline, formfeed, vertical tab).\n", - " | maxsplit\n", - " | Maximum number of splits to do.\n", - " | -1 (the default value) means no limit.\n", - " | \n", - " | Splitting is done starting at the end of the bytes and working to the front.\n", - " | \n", - " | rstrip(self, bytes=None, /)\n", - " | Strip trailing bytes contained in the argument.\n", - " | \n", - " | If the argument is omitted or None, strip trailing ASCII whitespace.\n", - " | \n", - " | split(self, /, sep=None, maxsplit=-1)\n", - " | Return a list of the sections in the bytes, using sep as the delimiter.\n", - " | \n", - " | sep\n", - " | The delimiter according which to split the bytes.\n", - " | None (the default value) means split on ASCII whitespace characters\n", - " | (space, tab, return, newline, formfeed, vertical tab).\n", - " | maxsplit\n", - " | Maximum number of splits to do.\n", - " | -1 (the default value) means no limit.\n", - " | \n", - " | splitlines(self, /, keepends=False)\n", - " | Return a list of the lines in the bytes, breaking at line boundaries.\n", - " | \n", - " | Line breaks are not included in the resulting list unless keepends is given and\n", - " | true.\n", - " | \n", - " | startswith(...)\n", - " | B.startswith(prefix[, start[, end]]) -> bool\n", - " | \n", - " | Return True if B starts with the specified prefix, False otherwise.\n", - " | With optional start, test B beginning at that position.\n", - " | With optional end, stop comparing B at that position.\n", - " | prefix can also be a tuple of bytes to try.\n", - " | \n", - " | strip(self, bytes=None, /)\n", - " | Strip leading and trailing bytes contained in the argument.\n", - " | \n", - " | If the argument is omitted or None, strip leading and trailing ASCII whitespace.\n", - " | \n", - " | swapcase(...)\n", - " | B.swapcase() -> copy of B\n", - " | \n", - " | Return a copy of B with uppercase ASCII characters converted\n", - " | to lowercase ASCII and vice versa.\n", - " | \n", - " | title(...)\n", - " | B.title() -> copy of B\n", - " | \n", - " | Return a titlecased version of B, i.e. ASCII words start with uppercase\n", - " | characters, all remaining cased characters have lowercase.\n", - " | \n", - " | translate(...)\n", - " | translate(table, [deletechars])\n", - " | Return a copy with each character mapped by the given translation table.\n", - " | \n", - " | table\n", - " | Translation table, which must be a bytes object of length 256.\n", - " | \n", - " | All characters occurring in the optional argument deletechars are removed.\n", - " | The remaining characters are mapped through the given translation table.\n", - " | \n", - " | upper(...)\n", - " | B.upper() -> copy of B\n", - " | \n", - " | Return a copy of B with all ASCII characters converted to uppercase.\n", - " | \n", - " | zfill(...)\n", - " | B.zfill(width) -> copy of B\n", - " | \n", - " | Pad a numeric string B with zeros on the left, to fill a field\n", - " | of the specified width. B is never truncated.\n", - " | \n", - " | ----------------------------------------------------------------------\n", - " | Static methods defined here:\n", - " | \n", - " | maketrans(frm, to, /)\n", - " | Return a translation table useable for the bytes or bytearray translate method.\n", - " | \n", - " | The returned table will be one where each byte in frm is mapped to the byte at\n", - " | the same position in to.\n", - " | \n", - " | The bytes objects frm and to must be of the same length.\n", - "\n" - ] - } - ], + "execution_count": null, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], "source": [ "help(bytes)" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "b'\\n'" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "bytes([10])" ] @@ -757,7 +305,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -772,125 +320,70 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(bytes, str)" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "type(tmp),type(s)" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(2, int)" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tmp[1],type(tmp[1])" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "('2', str)" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "s[1],type(s[1])" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(b'\\x02\\x03\\x04', bytes)" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "tmp[1:],type(tmp[1:])" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "(2, int)" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "list(tmp)[1],type(list(tmp)[1])" ] @@ -1178,47 +671,28 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "str" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "type(\"AGH\")" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "utf-8\n" - ] - } - ], + "outputs": [], "source": [ "import sys\n", "print(sys.getdefaultencoding())" @@ -1226,32 +700,21 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "str" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "type(\"ąę\")" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": { "collapsed": true, "slideshow": { @@ -1267,125 +730,70 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "['test']" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "%sx cat /tmp/records.log" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'Δ'" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "\"\\N{GREEK CAPITAL LETTER DELTA}\"" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'Δ'" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "\"\\u0394\"" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "916" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "ord('Δ')" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "data": { - "text/plain": [ - "'Δ'" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "chr(916)" ] @@ -1889,30 +1297,14 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Not an error\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Error!\n", - "Error!\n" - ] - } - ], + "outputs": [], "source": [ "%%python3\n", "import sys\n", @@ -1923,30 +1315,14 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Not an error\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Error!\n", - "Error!\n" - ] - } - ], + "outputs": [], "source": [ "%%python2\n", "import sys\n", @@ -2203,22 +1579,14 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n" - ] - } - ], + "outputs": [], "source": [ "%%python2\n", "range(10)\n", @@ -2228,31 +1596,14 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { "slide_type": "fragment" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "range(0, 10)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Traceback (most recent call last):\n", - " File \"\", line 2, in \n", - "NameError: name 'xrange' is not defined\n" - ] - } - ], + "outputs": [], "source": [ "%%python3\n", "print(range(10))\n", @@ -2272,7 +1623,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { @@ -2289,7 +1640,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "collapsed": false, "slideshow": { From ca2a9bf9ee86aa43e458a14239d58b22d65753ca Mon Sep 17 00:00:00 2001 From: Mateusz Krakowski Date: Sat, 30 Jan 2016 17:18:32 +0100 Subject: [PATCH 22/22] Update README_RISE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... nieco lepszy opis tego jak znaleść i dodana przykładowa ścieżka dla Windows. Z niewiadomych przyczyn na Windows nie mogę wprowadzić niektórych polskich znaków, poprawię całość na Ubuntu jak będzie już zatwierdzone (żeby nie robić tego niepotrzebnie) --- README_RISE.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README_RISE.md b/README_RISE.md index fc8c3b9..5a863d7 100644 --- a/README_RISE.md +++ b/README_RISE.md @@ -70,7 +70,15 @@ gdzie `` to miejsce w którym przechowywane są dane o apli (w to miejsce były kopiowane pliki po uruchomieniu skryptu `setup.py`)
na przykład może to być
`~/.local/share/` w przypadku systemu UNIX czy
-`znalesc dla Windows` w przypadku systemu Windows
+`C:\Users\\AppData\Roaming` w przypadku systemu Windows
+
+
+Jeżeli masz problemy ze znalezieniem wlasciwej scieżki, zmodyfikuj dowolny szablon
+z `/RISE` (na przyklad plik `/RISE/livereveal/reveal.js/css/theme/simple.css`)
+dodajac jakis komentarz który nie zmieni jego dzialania. Nastepnie uruchom ponownie
+skrypt `setup.py`. W konsoli powinny pojawić sie scieżki:
+1. Scieżka do /RISE
+2. Szukana sciezka (do niej kopiowany jest nowy plik simple.css)
Modyfikację należy wprowadzić w linii 67, ustawiając parametr:
`font-size: 100%;`