Komunikacja Człowiek-Komputer



Podobne dokumenty
Przegląd języka Python. Łukasz Anwajler

Zaawansowany kurs języka Python

Kurs rozszerzony języka Python

Język Python (2) Język Python (2) 1/36

Koło Studentów Informatyki Uniwersytetu Wrocławskiego

Python wstęp do programowania dla użytkowników WCSS

Wstęp do informatyki. Python 1

Wątki i komunikacja między nimi w języku Python

Kurs języka Python. Wykład 14. Marcin Młotkowski. 25 stycznia Python i Apache Pythonowe platformy aplikacyjne. Dystrybucja aplikacji w U*IX

Zaawansowany kurs języka Python

Środowisko programisty

Podstawy analizy danych numerycznych w języku Python

Język Python. Język Python 1/35

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

Wstęp do Pythona. Janusz Szwabiński. Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36

Technologie cyfrowe semestr letni 2018/2019

Redis, skrypty w języku Lua

Kurs rozszerzony języka Python

Programowanie i projektowanie obiektowe

Python. Wprowadzenie. Jolanta Bachan

Programowanie obiektowe

Obliczenia Symboliczne I. Python - Składnia Typizacja

Programowanie wizualne

Dariusz Brzeziński Instytut Informatyki, Politechnika Poznańska

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

Testy aplikacji webowych

Zaawansowany kurs języka Python

Technologie informacyjne: Excel i Python

Plan. krótkie opisy modułów. 1 Uwagi na temat wydajności CPython a. 2 Podstawowe techniki poprawiające wydajność obliczeniową

Sphinx - system dokumentacji dla Pythona

Podstawy programowania w Pythonie

Wprowadzenie do Python

Podstawy programowania w Pythonie

Kurs języka Python. Wykład 13. Marcin Młotkowski. 18 stycznia Rozszerzenia Pythona w C Python/C API. 2 Osadzanie Pythona w C

Wstęp do programowania

Python. Skąd taka nazwa? Kurs systemu UNIX 1

Zaawansowany kurs języka Python

Technologie Informacyjne

Zaawansowany kurs języka Python

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Metaprogramowanie w Ruby

Słowa kluczowe jak góry lodowe

Języki programowania do zastosowań biomedycznych

ξ II.UWr Erlang - wprowadzenie Marek Materzok 29 października 2007

Wprowadzenie do języka Java

Kurs rozszerzony języka Python

Programowanie obiektowe

Python! Lekcja 1 podstawy języka, typy danych

Podstawy. Jan Koprowski Politechnika Gdańska, FTiMS Informatyka Stosowana

Microsoft IT Academy kurs programowania

Hackowanie zamrożonych binariów

Instrukcja instalacji oprogramowania dla środowiska Linux

Tworzenie aplikacji w języku Java

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Aplikacje WWW. Krzysztof Ciebiera. 3 kwietnia 2014

Wstęp do programowania

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

Adam Wójs <adam[shift+2]wojs.pl> git --wprowadzenie

Zaawansowany kurs języka Python

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Metody numeryczne. Artur Wymysłowski, prof. PWr. Wrocław

Środowiska wirtualne i zarządzanie zależnościami w Pythonie. Piotr Grzesik

Ćwiczenie 3. Python 3: Python 3: Funkcje, moduły i operacje na plikach

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Zaawansowany kurs języka Python

Kurs języka Python. Wykład 11. Marcin Młotkowski. 4 stycznia Kontrola poprawności podczas biegu programu. 2 Testowanie oprogramowania

Obiektowy Caml. Paweł Boguszewski

PYTHON NA LEKCJACH INFORMATYKI W SZKOLE PONADGIMNAZJALNEJ

Programowanie obiektowe

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring

Python i programowanie funkcyjne. Python i programowanie funkcyjne czyli nie tylko obiektowość rządzi. OSEC Funkcyjnie w języku Python 1 z 40

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Wstęp do programowania

Modelowanie numeryczne w fizyce atmosfery Ćwiczenia 3

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)

Podstawy bioinformatyki 2017/18

Wykresy i interfejsy użytkownika

Technologie cyfrowe semestr letni 2018/2019


Pobieranie argumentów wiersza polecenia

Kurs rozszerzony języka Python

Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )

Kurs rozszerzony języka Python

Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python.

Wstęp do programowania

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Wstęp do ruby dla programistów javy

I.Wojnicki, Tech.Inter.

PARADYGMATY PROGRAMOWANIA Wykład 4

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie.

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Programowanie obiektowe zastosowanie języka Java SE

Wstęp do programowania

Podstawy języka skryptowego Lua

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

- dodaj obiekt tekstowy: /** Maciej */ Stage { title : "First JavaFX App" scene: Scene { width: 300 height: 300 content: [ ] } }

Transkrypt:

Komunikacja Człowiek-Komputer Wprowadzenie do Python a Wojciech Jaśkowski Instytut Informatyki Politechnika Poznańska Wersja: 14 października 2013

Hello world print( Hello world )

Dlaczego Python? Prosty do nauki Zwięzła składnia Czytelny kod Przenośny: Windows, Linux/Unix, OSX, Java,.NET Otwarty, wolny, darmowy Bogata biblioteka standardowa, ogromna liczba bibliotek Popularny wśród naukowców Łatwo googlywalny Stosunkowo popularny: 8 na liście TIOBE Programming Community Index

TIOBE Programming Community Index http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Kto używa? Dropbox (Guido van Rossum) Mercurial Ubuntu Software Center Trac web-based bug/issue tracking database, wiki, and version control front-end Civilization IV, World of Tanks for most of its tasks Battlefield 2 for all its addons Django, an MVT (model, view, template) web framework Abaqus, Finite Element Software (scripting) Blender 3D, Unity 3D, Cinema 4D, Maya, Corel Paint Shop Pro, GIMP (scripting) Google (e.g. Youtube, Google App, Google Chrome, partially) Engine Quora, Instagram, Spotify, Reddit

Implementacje CPython (standard) Najnowsze stabilne wersje: 2.7 i 3.3 PyPy (w Pythonie, JIT) Jython (dla JVM) IronPython (dla.net)

Paradygmaty Proceduralny arr = sorted([3,2,-1]) first = arr[0] Obiektowy class Pair(list): def init (self, first, second): self.first = first self.second = second arr = Pair(3, 7) Elementy funkcyjne arr = sorted([3,2,-1], key=lambda x: abs(x))

Cechy Python a System typów: bez deklaracji x = 1 dynamicznie typowany x = 1 x = "12" silnie typowany x = "1" + 1 TypeError: Can t convert int object to str implicitly

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 ugly two-line comment """

Tutorial

Uruchamianie i środowiska interaktywne $> python plik.py $> python $> ipython $> ipython plik.ipy $> ipython qtconsole $> ipython qtconsole --matplotlib $> ipython notebook $> ipython notebook --matplotlib=inline

Środowiska developerskie warte uwagi PyCharm (http://www.jetbrains.com/pycharm/) pyscripter (https://code.google.com/p/pyscripter/) spyder (https://code.google.com/p/spyderlib/)

Moduły Moduł to plik, np: fibonacci.py from future import print_function # Python < 3.0 MAXFIB=1000 def fib(n): a, b = 0, 1 while b < n: print(b,end= ) a, b = b, a+b >>> import fibonacci >>> fibonacci.fib(10) 1 1 2 3 5 8

Moduły Moduł to plik, np: fibonacci.py from future import print_function # Python < 3.0 MAXFIB=1000 def fib(n): a, b = 0, 1 while b < n: print(b,end= ) a, b = b, a+b >>> import fibonacci as fibo >>> fibo.fib(10) 1 1 2 3 5 8

Moduły Moduł to plik, np: fibonacci.py from future import print_function # Python < 3.0 MAXFIB=1000 def fib(n): a, b = 0, 1 while b < n: print(b,end= ) a, b = b, a+b >>> from fibonacci import fib >>> fib(10) 1 1 2 3 5 8

Moduły Moduł to plik, np: fibonacci.py from future import print_function # Python < 3.0 MAXFIB=1000 def fib(n): a, b = 0, 1 while b < n: print(b,end= ) a, b = b, a+b >>> from fibonacci import fib, MAXFIB >>> fib(10) 1 1 2 3 5 8 >>> MAXFIB 1000

Moduły Moduł to plik, np: fibonacci.py from future import print_function # Python < 3.0 MAXFIB=1000 def fib(n): a, b = 0, 1 while b < n: print(b,end= ) a, b = b, a+b >>> from fibonacci import * # Niepolecane >>> fib(10) 1 1 2 3 5 8 >>> MAXFIB 1000

Skrypty >>> import fibonacci as fib >>> fib. name fibonacci Uruchamianie skryptów: python fibonacci.py <argumenty> ustawia name na main

Skrypty fibonacci.py from future import print_function def fib(n): a, b = 0, 1 while b < n: print(b, end= ) a, b = b, a+b if name == main : import sys fib(int(sys.argv[1])) > python fibbonacci.py 20 1 1 2 3 5 8 13

Pakiety sound/ init.py formats/ init.py wavread.py wavwrite.py aiffread.py aiffwrite.py auread.py auwrite.py... effects/ init.py echo.py surround.py Pakiet Inicjalizacja pakietu Podpakiet formats Podpakiet efekty

Pakiety Moduły i pakiety muszą być w katalogu sys.path >>> import sys >>> sys.path [, /usr/lib/python2.7/dist-packages, /home/wojciech/.local/lib/python2.7/site-packages, (...)]

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

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 of the argument. >>> dir(list) [ add,..., sort,...]

Python jest wolny. Ale czy zbyt wolny? Źródło: http://www.infoworld.com/d/application-development/van-rossum-python-not-too-slow-188715

Przyspieszanie PyPy, kompilator z JIT Rozszerzenia w C lub C++: http: //docs.python.org/release/2.5.2/ext/intro.html Cython, Python z typami z C

Cython def primes(int kmax): cdef int n, k, i cdef int p[1000] result = [] k = 0; n = 2 while k < kmax: i = 0 while i < k and n % p[i]!= 0: i += 1 if i == k: p[k] = n k += 1 result.append(n) n = n + 1 return result

Koniec Dziękuję za uwagę.