{ "cells": [ { "metadata": {}, "cell_type": "markdown", "source": "### Operacje logiczne" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# zacznijmy od porownań \n\n# czy zero jest mniejsze niż jeden\n\nprint('0 < 1 : ',0 < 1) #True\n\n# czy zero jest większe niż jeden\n\nprint('0 > 1 : ',0 > 1) #False\n\n# czy zero jest mniejsze lub równe jeden\n\nprint('0 <= 1 : ',0 <= 1) #True\n\n# czy zero jest większe lub równe jeden\n\nprint('0 >= 1 : ',0 >= 1) #False\n\n# czy jeden jest równe zero\n\nprint('1 == 0 : ',1 == 0) #False\n\n# czy jeden jest rowne jeden\n\nprint('1 == 1 : ',1 == 1) #True\n\n# czy jeden jest różne od zera\n\nprint('1 != 0 : ',1 != 0) #True\n\n# czy jeden jest rózne od jeden\n\nprint('',1!= 1) #False", "execution_count": 1, "outputs": [ { "output_type": "stream", "text": "0 < 1 : True\n0 > 1 : False\n0 <= 1 : True\n0 >= 1 : False\n1 == 0 : False\n1 == 1 : True\n1 != 0 : True\n False\n", "name": "stdout" } ] }, { "metadata": {}, "cell_type": "markdown", "source": "### Typ logiczny True/False" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# typ logiczny traktowany jako całkowity True =1, False =0\n\nprint('True + True = ',True + True, type(True + True))\n\nprint('True - False = ',True - False,type(True + True))\n\nprint('True * False = ',True * False,type(True + True))\n\nprint('True / False =',True / False,type(True + True)) # ZeroDivisionError: division by zero", "execution_count": 2, "outputs": [ { "output_type": "stream", "text": "True + True = 2 \nTrue - False = 1 \nTrue * False = 0 \n", "name": "stdout" }, { "output_type": "error", "ename": "ZeroDivisionError", "evalue": "division by zero", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'True * False = '\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;32mTrue\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mTrue\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'True / False ='\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;32mTrue\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mTrue\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# ZeroDivisionError: division by zero\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mZeroDivisionError\u001b[0m: division by zero" ] } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# typ logiczny traktowany jako całkowity True =1, False =0\n\nprint('True and True = ',True and True, type(True and True))\n\nprint('True or False = ',True or False,type(True or True))\n\nprint('not False = ',not False,type(not False))\n\nprint('not True =',not True,type(not True))", "execution_count": 3, "outputs": [ { "output_type": "stream", "text": "True and True = True \nTrue or False = True \nnot False = True \nnot True = False \n", "name": "stdout" } ] }, { "metadata": { "collapsed": true }, "cell_type": "markdown", "source": "### Instrukcja warunkowa" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# instrukcja warunkowa if\n\n# wykona się jeśli wartość logiczna warunku jest prawdziwa\nif True:\n print('Prawda jest najważniejsza\\n')\n\n# nie wykona się jeśli wartość logiczna warunku jest fałszywa\n\n \nif False:\n print('Ta instrukcja się nie wykona.')\n \n \n# wykonanie polecenia1 jeśli warunek jest prawdziwy a polecenie2 jeśli falszywy\n\n'''\nif ( warunek ):\n polecenie1\nelse:\n polecenie2\n'''\n\na=100\n\nif a<50:\n print('a jest mniejsze niż 50')\nelse:\n print('a jest większe lub równe 50')\n \n \n\n ", "execution_count": 4, "outputs": [ { "output_type": "stream", "text": "Prawda jest najważniejsza\n\na jest większe lub równe 50\n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "a=53\n\n# instrukcja warunkowa z elif i else\nif a > 50:\n # to się wykona jeśli warunek jest prawdziwy\n print(\"a jest większe niż 50\")\nelif a == 50:\n # w przeciwnym przypadku, jeśli warunek jest prawdziwy\n print(\"a jest równe 50\")\nelse:\n # w pozostałych przypadkach\n print(\"a jest mniejsze niż 50\")\n \n \na=50\n# instrukcja warunkowa z elif i else\nif a > 50:\n # to się wykona jeśli warunek jest prawdziwy\n print(\"a jest większe niż 50\")\nelif a == 50:\n # w przeciwnym przypadku, jeśli warunek jest prawdziwy\n print(\"a jest równe 50\")\nelse:\n # w pozostałych przypadkach\n print(\"a jest mniejsze niż 50\")\n \na=47\n# instrukcja warunkowa z elif i else\nif a > 50:\n # to się wykona jeśli warunek jest prawdziwy\n print(\"a jest większe niż 50\")\nelif a == 50:\n # w przeciwnym przypadku, jeśli warunek jest prawdziwy\n print(\"a jest równe 50\")\nelse:\n # w pozostałych przypadkach\n print(\"a jest mniejsze niż 50\") ", "execution_count": 5, "outputs": [ { "output_type": "stream", "text": "a jest większe niż 50\na jest równe 50\na jest mniejsze niż 50\n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# wykorzystanie funkcji input\n\nprint(\"Podaj liczbę:\", end=' ')\n\nraw_x = input() # pobieramy napis z wejścia standardowego (klawiatury)\nx = eval(raw_x) # próba interpretacji napisu tak jak wyrażenia języka Python\n\nprint('Wprowadzona liczba w stanie surowym: ',raw_x,type(raw_x),' Po ewaluacji :',x, type(x))\n\nif x<10:\n print('Wprowadzona liczba jest mniejsza niż 10')\nelif x == 10:\n # w przeciwnym przypadku, jeśli warunek jest prawdziwy\n print(\"Wprowadzona liczba jest równa 10\")\nelse:\n # w pozostałych przypadkach\n print(\"Wprowadzona liczba jest większa niż 10\") \n", "execution_count": 6, "outputs": [ { "output_type": "stream", "text": "Podaj liczbę: 11\nWprowadzona liczba w stanie surowym: 11 Po ewaluacji : 11 \nWprowadzona liczba jest większa niż 10\n", "name": "stdout" } ] }, { "metadata": {}, "cell_type": "markdown", "source": "### Petle" }, { "metadata": {}, "cell_type": "markdown", "source": "#### Petla for" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# iteracja po liczbach całkowitych\nfor licznik in (1,2,3,4):\n print('liczni k= ',licznik)\n\n \n# iteracja po elementach napisu\n\nnapis1='Ala ma kota' \nfor litera in (range(len(napis1))):\n print ('Litera = ', napis1[litera])\n \n# iteracja po liście\n\nowoce = ['gruszka', 'jabłko', 'śliwka']\n\nfor owoc in range(len(owoce)):\n print ('Owoc =',owoce[owoc] )\n \n# petla for z dodatkowa klauzula else: na koncu\n\nfor licznik in range(1,11):\n print('licznik =',licznik)\nelse:\n print('Koniec i bomba!') \n \n \n \nfor licznik in range(10) :\n print('licznik = ',licznik,' ',end='\\n')\nelse:\n print('Koniec i bomba!') ", "execution_count": 7, "outputs": [ { "output_type": "stream", "text": "liczni k= 1\nliczni k= 2\nliczni k= 3\nliczni k= 4\nLitera = A\nLitera = l\nLitera = a\nLitera = \nLitera = m\nLitera = a\nLitera = \nLitera = k\nLitera = o\nLitera = t\nLitera = a\nOwoc = gruszka\nOwoc = jabłko\nOwoc = śliwka\nlicznik = 1\nlicznik = 2\nlicznik = 3\nlicznik = 4\nlicznik = 5\nlicznik = 6\nlicznik = 7\nlicznik = 8\nlicznik = 9\nlicznik = 10\nKoniec i bomba!\nlicznik = 0 \nlicznik = 1 \nlicznik = 2 \nlicznik = 3 \nlicznik = 4 \nlicznik = 5 \nlicznik = 6 \nlicznik = 7 \nlicznik = 8 \nlicznik = 9 \nKoniec i bomba!\n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# figura 1\nfor i in range(10):\n print(str(i) * i)", "execution_count": 8, "outputs": [ { "output_type": "stream", "text": "\n1\n22\n333\n4444\n55555\n666666\n7777777\n88888888\n999999999\n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# https://www.w3resource.com/python-exercises/python-conditional-exercise-17.php\n\n# małe ćwiczenie nd dwie petle for wraz z instrukcjami warunkowymi\n\nresult_str=\"\"; \nfor row in range(0,7): \n for column in range(0,7): \n if (((column == 1 or column == 5) and row != 0) or ((row == 0 or row == 3) and (column > 1 and column < 5))): \n result_str=result_str+\"*\" \n else: \n result_str=result_str+\" \" \n result_str=result_str+\"\\n\" \nprint(result_str);", "execution_count": 9, "outputs": [ { "output_type": "stream", "text": " *** \n * * \n * * \n ***** \n * * \n * * \n * * \n\n", "name": "stdout" } ] }, { "metadata": {}, "cell_type": "markdown", "source": "#### Petla while" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# wykonuj blok instrukcji dopóki warunek jest spełniony\n\n#while warunek:\n# instrukcje\n\ni=0\nwhile i<5: # dopoki warunek jest prawdziwy\n print('Iteracja : ',i)\n i=i+1", "execution_count": 10, "outputs": [ { "output_type": "stream", "text": "Iteracja : 0\nIteracja : 1\nIteracja : 2\nIteracja : 3\nIteracja : 4\n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# z dodaniem else:\n\ni=0\nwhile i<5: # dopoki warunek jest prawdziwy\n print('Iteracja : ',i)\n i=i+1\nelse: # wykona się na koncu petli \n print('Koniec pętli.') \n", "execution_count": 11, "outputs": [ { "output_type": "stream", "text": "Iteracja : 0\nIteracja : 1\nIteracja : 2\nIteracja : 3\nIteracja : 4\nKoniec pętli.\n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# działa nawet dla pustej petli\n\ni=0\nwhile i>5: # dopoki warunek jest prawdziwy, w tym przypadku nigdy\n print('Iteracja : ',i)\n i=i+1\nelse: # wykona się na koncu petli \n print('Koniec pustej pętli.')\n", "execution_count": 12, "outputs": [ { "output_type": "stream", "text": "Koniec pustej pętli.\n", "name": "stdout" } ] }, { "metadata": {}, "cell_type": "markdown", "source": "#### Dodatkowe sterowanie w petli\nbreak - przerwij pętlę\n\n\ncontinue - przerwij obecną iterację\n\npass - nie rób nic\n\nelse - wykonuj jeśli pętla zakończyła się inaczej niż break\n\n\n" }, { "metadata": {}, "cell_type": "markdown", "source": "#### break" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "for i in range(1,6): # od 1 do 5\n if i>3: # nie wykona się Iteracja dla i : 4,5\n break\n \n print('Iteracja dla i :',i)\n ", "execution_count": 13, "outputs": [ { "output_type": "stream", "text": "Iteracja dla i : 1\nIteracja dla i : 2\nIteracja dla i : 3\n", "name": "stdout" } ] }, { "metadata": {}, "cell_type": "markdown", "source": "#### continue" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "for i in range(1,6): # od 1 do 5\n if i%2==0:\n continue # pomijamy parzyste i\n print('Iteracja dla i :',i) ", "execution_count": 14, "outputs": [ { "output_type": "stream", "text": "Iteracja dla i : 1\nIteracja dla i : 3\nIteracja dla i : 5\n", "name": "stdout" } ] }, { "metadata": {}, "cell_type": "markdown", "source": "#### pass " }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "for i in range(1,6): # od 1 do 5\n if i%2==0:\n pass # nic nie rób\n print('Iteracja dla i :',i) ", "execution_count": 15, "outputs": [ { "output_type": "stream", "text": "Iteracja dla i : 1\nIteracja dla i : 2\nIteracja dla i : 3\nIteracja dla i : 4\nIteracja dla i : 5\n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "for i in range(1,11): # od 1 do 10\n if i%2==0:\n pass # nic nie rób\n else: # wykona się dla nieparzystych i\n print('Iteracja dla i :',i) ", "execution_count": 16, "outputs": [ { "output_type": "stream", "text": "Iteracja dla i : 1\nIteracja dla i : 3\nIteracja dla i : 5\nIteracja dla i : 7\nIteracja dla i : 9\n", "name": "stdout" } ] }, { "metadata": {}, "cell_type": "markdown", "source": "#### else" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# wykonanie instrukcji na końcu pętli\n\nfor i in range(1,6): # od 1 do 5\n if i%2==0:\n pass # nic nie rób\n print('Iteracja dla i :',i) \nelse:\n print('Koniec pętli.')", "execution_count": 17, "outputs": [ { "output_type": "stream", "text": "Iteracja dla i : 1\nIteracja dla i : 2\nIteracja dla i : 3\nIteracja dla i : 4\nIteracja dla i : 5\nKoniec pętli.\n", "name": "stdout" } ] }, { "metadata": { "trusted": true, "scrolled": true }, "cell_type": "code", "source": "# Przyklad petli for z else, który nie zostanie wykonany . \n\nfor i in range(1,11): # od 1 do 10\n if i%2==0:\n pass # nic nie rób\n print('Iteracja dla i :',i) \n if i%5==0: # konczymy na i=5\n break\nelse: # ta czesc nie wykona się \n print('Koniec pętli.')", "execution_count": 18, "outputs": [ { "output_type": "stream", "text": "Iteracja dla i : 1\nIteracja dla i : 2\nIteracja dla i : 3\nIteracja dla i : 4\nIteracja dla i : 5\n", "name": "stdout" } ] }, { "metadata": {}, "cell_type": "markdown", "source": "### Pakiety" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# importowanie pakietu\n\nimport this", "execution_count": 19, "outputs": [ { "output_type": "stream", "text": "The Zen of Python, by Tim Peters\n\nBeautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.\nReadability counts.\nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\nErrors should never pass silently.\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to guess.\nThere should be one-- and preferably only one --obvious way to do it.\nAlthough that way may not be obvious at first unless you're Dutch.\nNow is better than never.\nAlthough never is often better than *right* now.\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\nNamespaces are one honking great idea -- let's do more of those!\n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# Dokumentacja danego pakietu/modułu\n\nhelp(this)", "execution_count": 20, "outputs": [ { "output_type": "stream", "text": "Help on module this:\n\nNAME\n this\n\nMODULE REFERENCE\n https://docs.python.org/3.6/library/this\n \n The following documentation is automatically generated from the Python\n source files. It may be incomplete, incorrect or include features that\n are considered implementation detail and may vary between Python\n implementations. When in doubt, consult the module reference at the\n location listed above.\n\nDATA\n c = 97\n d = {'A': 'N', 'B': 'O', 'C': 'P', 'D': 'Q', 'E': 'R', 'F': 'S', 'G': ...\n i = 25\n s = \"Gur Mra bs Clguba, ol Gvz Crgref\\n\\nOrnhgvshy vf o...bar ubaxvat ...\n\nFILE\n /home/nbuser/anaconda3_501/lib/python3.6/this.py\n\n\n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# lista obiektów, które zawiera dany pakiet \ndir(this)", "execution_count": 21, "outputs": [ { "output_type": "execute_result", "execution_count": 21, "data": { "text/plain": "['__builtins__',\n '__cached__',\n '__doc__',\n '__file__',\n '__loader__',\n '__name__',\n '__package__',\n '__spec__',\n 'c',\n 'd',\n 'i',\n 's']" }, "metadata": {} } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# wyswietlenie zawartości jednego z nich\n\n# odwołanie w formacie nazwapa_pkietu.nazwa_obiektu\n\nprint('this.c = ',this.c,' type :', type(this.c))", "execution_count": 22, "outputs": [ { "output_type": "stream", "text": "this.c = 97 type : \n", "name": "stdout" } ] }, { "metadata": {}, "cell_type": "markdown", "source": "#### Aliasy" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# Podczas importu pakietu można uzyc aaliasu\nimport this as zp\n# dostep do zmiennej c formacie nazwa_aliasu.nazwa_obiektu\nprint('zp.c = ',zp.c,' type :', type(zp.c))\n# dostep z poprzedniego importu bez aliasu\nprint('this.c = ',this.c,' type :', type(this.c))", "execution_count": 23, "outputs": [ { "output_type": "stream", "text": "zp.c = 97 type : \nthis.c = 97 type : \n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "import sys\n# usuwamy załadowany pakiet math\ndel sys.modules['math']\n# importujemy go ponownie\nimport math as m\n# dostep do wartości PI i E\nprint('m.pi = ',m.pi,' type :', type(m.pi)) #m.pi = 3.141592653589793 type : \nprint('m.e = ',m.e,' type :', type(m.e)) # m.e = 2.718281828459045 type : \n# dostep bez podania aliasu \n\nprint('this.c = ',math.pi,' type :', type(math.pi)) # NameError: name 'math' is not defined\n", "execution_count": 24, "outputs": [ { "output_type": "stream", "text": "m.pi = 3.141592653589793 type : \nm.e = 2.718281828459045 type : \n", "name": "stdout" }, { "output_type": "error", "ename": "NameError", "evalue": "name 'math' is not defined", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;31m# dostep bez podania aliasu\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'this.c = '\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpi\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m' type :'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpi\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# NameError: name 'math' is not defined\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'math' is not defined" ] } ] }, { "metadata": {}, "cell_type": "markdown", "source": "#### Często stosowane pakiety" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# czesto wykorzystujemy aliasy przy imporcie znanych pakietow\n\nimport pandas as pd\n\n# wersja pakietu pd\n\nprint (pd.__version__) # 0.20.3\n# gdzie został zainstalowany pakiet\n\nprint(pd) # \n\nimport numpy as np\n\n# wersja pakietu np\nprint (np.__version__) # 1.15.1\n\n# gdzie został zainstalowany\nprint(np)\n\n# import podmodułu pyplot z pakietu patplotlib jako alias plt\n\nimport matplotlib.pyplot as plt\n%matplotlib inline\n\n# Proste demo \n\n# generowanie 100 pseudolosowych liczb \n\nliczby=np.random.rand(100,1)\n\n# budowa histogramu\n\nplt.hist(liczby)\n\n# wyswietlenie \n\nplt.show()\n", "execution_count": 25, "outputs": [ { "output_type": "stream", "text": "0.20.3\n\n1.15.1\n\n", "name": "stdout" }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": "" }, "metadata": {} } ] }, { "metadata": {}, "cell_type": "markdown", "source": "#### Importowanie obiektów do globalnej przestrzeni nazw" }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# importowanie z pakietu this wyłącznie zmiennej c\n\nfrom this import c\n\nprint('c = ',c,' type :', type(c))\n\n# importowanie z pakietu this wszystkich obiektow\n# nie jest to polecane, gdzyż skutecznie zaśmieci \n# nam globalna przestrzeń nazw\n\nc=15.0\nprint('c = ',c,' type :', type(c))\n\nfrom this import *\n\n# zmienna c została nadpisana wartością 97 z pakietu\nprint('c = ',c,' type :', type(c))\n", "execution_count": 26, "outputs": [ { "output_type": "stream", "text": "c = 97 type : \nc = 15.0 type : \nc = 97 type : \n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# co jeśli brakuje nam zainstalowanego pakietu\n# importujemy pakiet folium do wizualizacji map\n\nimport folium # ModuleNotFoundError: No module named 'folium'\n\n# pakiet nie został zainstalowany \n", "execution_count": 29, "outputs": [ { "output_type": "error", "ename": "ModuleNotFoundError", "evalue": "No module named 'folium'", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;31m# importujemy pakiet folium do wizualizacji map\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mfolium\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'folium'" ] } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "# instalacja pakietu folium\n\n# wykorzystujemy instalato pip dostepny z poziomu Pythona\n\n!pip install folium \n\n", "execution_count": 30, "outputs": [ { "output_type": "stream", "text": "Collecting folium\n Using cached https://files.pythonhosted.org/packages/88/89/8186c3441eb2a224d2896d9a8db6ded20ddd225f109e6144494a9893a0c1/folium-0.6.0-py3-none-any.whl\nRequirement already satisfied: requests in /home/nbuser/anaconda3_501/lib/python3.6/site-packages (from folium) (2.19.1)\nRequirement already satisfied: six in /home/nbuser/anaconda3_501/lib/python3.6/site-packages (from folium) (1.11.0)\nRequirement already satisfied: numpy in /home/nbuser/anaconda3_501/lib/python3.6/site-packages (from folium) (1.15.1)\nRequirement already satisfied: branca>=0.3.0 in /home/nbuser/anaconda3_501/lib/python3.6/site-packages (from folium) (0.3.0)\nRequirement already satisfied: jinja2 in /home/nbuser/anaconda3_501/lib/python3.6/site-packages (from folium) (2.9.6)\nRequirement already satisfied: certifi>=2017.4.17 in /home/nbuser/anaconda3_501/lib/python3.6/site-packages (from requests->folium) (2017.7.27.1)\nRequirement already satisfied: chardet<3.1.0,>=3.0.2 in /home/nbuser/anaconda3_501/lib/python3.6/site-packages (from requests->folium) (3.0.4)\nRequirement already satisfied: idna<2.8,>=2.5 in /home/nbuser/anaconda3_501/lib/python3.6/site-packages (from requests->folium) (2.6)\nRequirement already satisfied: urllib3<1.24,>=1.21.1 in /home/nbuser/anaconda3_501/lib/python3.6/site-packages (from requests->folium) (1.23)\nRequirement already satisfied: MarkupSafe>=0.23 in /home/nbuser/anaconda3_501/lib/python3.6/site-packages (from jinja2->folium) (1.0)\nInstalling collected packages: folium\nSuccessfully installed folium-0.6.0\n", "name": "stdout" } ] }, { "metadata": { "trusted": true }, "cell_type": "code", "source": "'''pojdzmy krok dalej i zbudujmy prosty mechanizam wykrywający \nze dany pakiet nie jest zainstalowany '''\n\nimport sys\n# sprawdzenie czy dany pakiet został zainstalowany\nif not 'folium' in sys.modules:\n # instalujemy pakiet\n !pip install folium\n\n# importujemy pakietu\nimport folium\n# sprawdzamy jego wersje \nprint ('Folium version :',folium.__version__)", "execution_count": 32, "outputs": [ { "output_type": "stream", "text": "Folium version : 0.6.0\n", "name": "stdout" } ] } ], "metadata": { "kernelspec": { "name": "python36", "display_name": "Python 3.6", "language": "python" }, "language_info": { "mimetype": "text/x-python", "nbconvert_exporter": "python", "name": "python", "pygments_lexer": "ipython3", "version": "3.6.3", "file_extension": ".py", "codemirror_mode": { "version": 3, "name": "ipython" } } }, "nbformat": 4, "nbformat_minor": 2 }