komunikacja cz owiek-komputer - wprowadzenie do python'a · pdf...
TRANSCRIPT
![Page 1: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/1.jpg)
Wstęp Tutorial Moduły i wydajność
Komunikacja Człowiek-KomputerWprowadzenie do Python’a
Wojciech Jaśkowski
Instytut InformatykiPolitechnika Poznańska
Wersja: 14 października 2013
![Page 2: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/2.jpg)
Wstęp Tutorial Moduły i wydajność
Hello world
print(’Hello world’)
![Page 3: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/3.jpg)
Wstęp Tutorial Moduły i wydajność
Dlaczego Python?
Prosty do naukiZwięzła składniaCzytelny kodPrzenośny: Windows, Linux/Unix, OSX, Java, .NETOtwarty, wolny, darmowyBogata biblioteka standardowa, ogromna liczba bibliotekPopularny wśród naukowców“Łatwo googlywalny”Stosunkowo popularny: 8 na liście TIOBE ProgrammingCommunity Index
![Page 4: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/4.jpg)
Wstęp Tutorial Moduły i wydajność
TIOBE Programming Community Index
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
![Page 5: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/5.jpg)
Wstęp Tutorial Moduły i wydajność
Kto używa?
Dropbox (Guido van Rossum)MercurialUbuntu Software CenterTrac — web-based bug/issue tracking database, wiki, andversion control front-endCivilization IV, World of Tanks — for most of its tasksBattlefield 2 — for all its addonsDjango, an MVT (model, view, template) web frameworkAbaqus, Finite Element Software (scripting)Blender 3D, Unity 3D, Cinema 4D, Maya, Corel Paint ShopPro, GIMP (scripting)Google (e.g. Youtube, Google App, Google Chrome, partially)Engine Quora, Instagram, Spotify, Reddit
![Page 6: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/6.jpg)
Wstęp Tutorial Moduły i wydajność
Implementacje
CPython (standard)Najnowsze stabilne wersje: 2.7 i 3.3
PyPy (w Pythonie, JIT)Jython (dla JVM)IronPython (dla .NET)
![Page 7: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/7.jpg)
Wstęp Tutorial Moduły i wydajność
Paradygmaty
Proceduralny
arr = sorted([3,2,-1])first = arr[0]
Obiektowy
class Pair(list):def __init__(self, first, second):
self.first = firstself.second = second
arr = Pair(3, 7)
Elementy funkcyjne
arr = sorted([3,2,-1], key=lambda x: abs(x))
![Page 8: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/8.jpg)
Wstęp Tutorial Moduły i wydajność
Cechy Python’a
System typów:bez deklaracji
x = 1
dynamicznie typowany
x = 1x = "12"
silnie typowany
x = "1" + 1TypeError: Can’t convert ’int’ object to str implicitly
![Page 9: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/9.jpg)
Wstęp Tutorial Moduły i wydajność
Składnia
“Life’s better without braces” (Bruce Eckel)dwukropek, spacje (tabulatory), cudzysłowy
if␣1+1==2:␣␣print(’Uff!’)else:␣␣print("Ups.␣I␣should’ve␣tried␣that")
komentarze
# This should not happen... normally""" An uglytwo-line comment """
![Page 10: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/10.jpg)
Wstęp Tutorial Moduły i wydajność
→ Tutorial
![Page 11: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/11.jpg)
Wstęp Tutorial Moduły i wydajność
Uruchamianie i środowiska interaktywne
$> python plik.py
$> python
$> ipython
$> ipython plik.ipy
$> ipython qtconsole
$> ipython qtconsole --matplotlib
$> ipython notebook
$> ipython notebook --matplotlib=inline
![Page 12: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/12.jpg)
Wstęp Tutorial Moduły i wydajność
Środowiska developerskie warte uwagi
PyCharm (http://www.jetbrains.com/pycharm/)pyscripter (https://code.google.com/p/pyscripter/)spyder (https://code.google.com/p/spyderlib/)
![Page 13: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/13.jpg)
Wstęp Tutorial Moduły i wydajność
Moduły
Moduł to plik, np:
fibonacci.pyfrom __future__ import print_function # Python < 3.0MAXFIB=1000def fib(n):
a, b = 0, 1while b < n:
print(b,end=’’)a, b = b, a+b
>>> import fibonacci>>> fibonacci.fib(10)1 1 2 3 5 8
![Page 14: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/14.jpg)
Wstęp Tutorial Moduły i wydajność
Moduły
Moduł to plik, np:
fibonacci.pyfrom __future__ import print_function # Python < 3.0MAXFIB=1000def fib(n):
a, b = 0, 1while b < n:
print(b,end=’’)a, b = b, a+b
>>> import fibonacci as fibo>>> fibo.fib(10)1 1 2 3 5 8
![Page 15: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/15.jpg)
Wstęp Tutorial Moduły i wydajność
Moduły
Moduł to plik, np:
fibonacci.pyfrom __future__ import print_function # Python < 3.0MAXFIB=1000def fib(n):
a, b = 0, 1while b < n:
print(b,end=’’)a, b = b, a+b
>>> from fibonacci import fib>>> fib(10)1 1 2 3 5 8
![Page 16: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/16.jpg)
Wstęp Tutorial Moduły i wydajność
Moduły
Moduł to plik, np:
fibonacci.pyfrom __future__ import print_function # Python < 3.0MAXFIB=1000def fib(n):
a, b = 0, 1while b < n:
print(b,end=’’)a, b = b, a+b
>>> from fibonacci import fib, MAXFIB>>> fib(10)1 1 2 3 5 8>>> MAXFIB1000
![Page 17: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/17.jpg)
Wstęp Tutorial Moduły i wydajność
Moduły
Moduł to plik, np:
fibonacci.pyfrom __future__ import print_function # Python < 3.0MAXFIB=1000def fib(n):
a, b = 0, 1while b < n:
print(b,end=’’)a, b = b, a+b
>>> from fibonacci import * # Niepolecane>>> fib(10)1 1 2 3 5 8>>> MAXFIB1000
![Page 18: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/18.jpg)
Wstęp Tutorial Moduły i wydajność
Skrypty
>>> import fibonacci as fib>>> fib.__name__’fibonacci’
Uruchamianie skryptów:
python fibonacci.py <argumenty>
ustawia__name__ na ’__main__’
![Page 19: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/19.jpg)
Wstęp Tutorial Moduły i wydajność
Skrypty
fibonacci.pyfrom __future__ import print_functiondef fib(n):
a, b = 0, 1while b < n:
print(b, end=’’)a, b = b, a+b
if __name__ == ’__main__’:import sysfib(int(sys.argv[1]))
> python fibbonacci.py 201 1 2 3 5 8 13
![Page 20: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/20.jpg)
Wstęp Tutorial Moduły i wydajność
Pakiety
sound/ Pakiet__init__.py Inicjalizacja pakietuformats/ Podpakiet ’formats’
__init__.pywavread.pywavwrite.pyaiffread.pyaiffwrite.pyauread.pyauwrite.py...
effects/ Podpakiet ’efekty’__init__.pyecho.pysurround.py
![Page 21: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/21.jpg)
Wstęp Tutorial Moduły i wydajność
Pakiety
Moduły i pakiety muszą być w katalogusys.path
>>> import sys>>> sys.path[’’,’/usr/lib/python2.7/dist-packages’,’/home/wojciech/.local/lib/python2.7/site-packages’,(...)]
![Page 22: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/22.jpg)
Wstęp Tutorial Moduły i wydajność
Pakiety — instalacja
Ubuntu:
sudo apt-get install python-numpy
Windows:http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
Wszędzie z repozytorium PyPI:
> pip install numpy> easy_install numpy
Lokalnie, w katalogu użytkownika:
> pip install --user numpy> easy_install --user numpy
![Page 23: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/23.jpg)
Wstęp Tutorial Moduły i wydajność
Pomoc
>>> help(abs)Help on built-in function abs in module __builtin__:
abs(...)abs(number) -> number
Return the absolute value of the argument.
>>> abs.__doc__’abs(number) -> number\n\nReturn the absolute value ofthe argument.’
>>> dir(list)[’__add__’, ..., ’sort’, ...]
![Page 24: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/24.jpg)
Wstęp Tutorial Moduły i wydajność
Python jest wolny. Ale czy zbyt wolny?
Źródło: http://www.infoworld.com/d/application-development/van-rossum-python-not-too-slow-188715
![Page 25: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/25.jpg)
Wstęp Tutorial Moduły i wydajność
Przyspieszanie
PyPy, kompilator z JITRozszerzenia w C lub C++: http://docs.python.org/release/2.5.2/ext/intro.html
Cython, Python z typami z C
![Page 26: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/26.jpg)
Wstęp Tutorial Moduły i wydajność
Cython
def primes(int kmax):cdef int n, k, icdef int p[1000]result = []k = 0; n = 2while k < kmax:
i = 0while i < k and n % p[i] != 0:
i += 1if i == k:
p[k] = nk += 1result.append(n)
n = n + 1return result
![Page 27: Komunikacja Cz owiek-Komputer - Wprowadzenie do Python'a · PDF fileBlender3D,Unity3D,Cinema4D,Maya,CorelPaintShop ... Tutorial. ... Uruchamianieiśrodowiskainteraktywne $>python plik.py](https://reader031.vdocuments.site/reader031/viewer/2022022004/5aa853307f8b9a77188b6ac1/html5/thumbnails/27.jpg)
Wstęp Tutorial Moduły i wydajność
Koniec
Dziękuję za uwagę.