Wykład 3 Piotr Błaszyński Wydział Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego 11 marca 2016
Możliwość pokazywania (czyli wizualizacji) danych. Najprostszy przykład: from p y l a b import p l o t ( [ 1, 4, 9, 16, 9, 4, 1 ] ) show ( )
Nieśmiertelne torty: import m a t p l o t l i b. cm as cm import numpy a s np import m a t p l o t l i b. p y p l o t as p l t v a l u e s = [ 3, 5, 10, 30, 2, 40, 9, 1 ] c s = cm. Set1 ( np. arange ( len ( v a l u e s ) ) / 1 0. ) p l t. p i e ( v a l u e s, c o l o r s=c s ) p l t. show ( )
Kontrola wersji W czym pomaga jedyna sensowna forma pracy zespołowej na kodem źródłowym (ale nie tylko), rozwiązanie problemu - wczoraj jeszcze działało, rozwiązanie problemu - kto dopisał lub czasopisma, pewna forma kopii zapasowej.
Kontrola wersji Istniejące rozwiązania git (github.com - podstawowowa wersja płatna dostępna dla studentów za darmo, bitbucket.org), subversion (SVN, http://tortoisesvn.net), bazaar http://bazaar.canonical.com/en/, Mercurial (Hg), Veracity, CVS, RCS (stare, pierwowzory obecnych rozwiązań), Source Safe, TFS (MS - obecnie też wychodzą z użycia).
pygubu - GUI pygubu - program do projektowania aplikacji tkinter, obsługuje wszystkie sposoby umieszczania widżetów
Dystrybucja programów w pythonie Programy napisane w pythonie można uruchamiać również na komputerach bez zainstalowanego pythona. Do tego celu można użyć kilku programów, 2 najpopularniejsze: py2exe cx freeze Do instalacji pakietów: najpopularniejszy jest w tej chwili program pip (znajdujący się w standardowej instalacji). Przykład użycia razem z opisem pygame.
QPython - Python na Androida Nie tylko możliwości uruchamiania programów, ale również możliwośc automatyzacji przy pomocy skryptów. Oparte na SL4A (Scripting Layer for Android).
Kivy Zarówno możliwości budowy użytkownika jak i prostych aplikacji korzystających z grafiki (w tym gier).
Sieć w Pythonie from u r l l i b import r e q u e s t, p a r s e u r l = http :// wi.zut.edu.pl params = { parameter1 : value1, parameter2 : value2 } q u e r y s t r i n g = p a r s e. u r l e n c o d e ( params ) r e q u e s t e d u r l = r e q u e s t. u r l o p e n ( u r l+? + q u e r y s t r i n g ) r e s p o n s e = r e q u e s t e d u r l. r e a d ( ) print ( r e s p o n s e )
Sieć w Pythonie - bardziej złożone wywołania W celu lepszej obsługi można użyć pakietu requests import r e q u e s t s u r l = http :// wi.zut.edu.pl r e s p = r e q u e s t s. head ( u r l ) s t a t u s = r e s p. s t a t u s c o d e l a s t m o d i f i e d = r e s p. h e a d e r s [ last - modified ] c o n t e n t t y p e = r e s p. h e a d e r s [ content -type ] print ( l a s t m o d i f i e d ) print ( c o n t e n t t y p e ) print ( r e s p. h e a d e r s ) Thu, 10 Mar 2016 0 0 : 5 4 : 3 7 GMT t e x t / html ; c h a r s e t=u t f 8 { Server : Apache /2.2.8 (Ubuntu ) PHP /5.2.4-2 ubuntu5.27 with Suhosin -Patch mod_ssl /2.2.8 OpenSSL /0.9.8g, Expires : Mon, 1 Jan 2001 00:00:00 GMT, Last - Modified : Thu, 10 Mar 2016 00:54:37 GMT,...............
Sieć w Pythonie Obsługa sieci w trybie połączeniowym: socketserver.tcpserver Obsługa sieci w trybie bezpołączeniowym: socketserver.udpserver do komunikacji z oboma typami serwerów używamy socket.socket
Sieć w Pythonie Dodatkowo cały zbiór bibliotek do obsługi formatów sieciowych i komunikacji przez. Kilka najbardziej popularnych przykładów:. Mechanize - możliwość udawania przeglądarki (np. dla stron wymagających logowania), Scrapy - pobieranie stron, Beautifulsoup, Lxml - parsowania html, Youtube-dl - pobieranie plików z youtube, Pillow - przetwarzanie obrazów (cięcie, gięcie, zmniejszanie itp.).
Python nas widzi - - biblioteka funkcji wykorzystywanych do obróbki obrazu. Ciekawe zastosowania: rozpoznawanie twarzy, rozpoznawanie wzorców ruchów, automatyzacja sterowania robotami, rozszerzona rzeczywistość (w uproszczeniu komputer wyświetla obraz z kamery modyfikując go uprzednio).
Proste gry - pygame Pygame - biblioteka do prostych gier, głównie 2D. Instalacja: python i n s t a l l wheel #a k t u a l i z a c j a p i p python m p i p i n s t a l l upgrade p i p http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame
Profiler - czemu to tak wolno działa Profiler to narzędzie pozwalające zmierzyć precyzyjnie czas wykonywania się poszczególnych fragmentów kodu, liczbę wywołań funkcji. Na tej podstawie programista może zdecydować nad którym fragmentem kodu należy popracować, żeby cały program działał np. szybciej. import p s t a t s p = p s t a t s. S t a t s ( daneprofilera ) p. s t r i p d i r s ( ). s o r t s t a t s ( 1). p r i n t s t a t s ( ) python m c P r o f i l e o d a n e P r o f i l e r a program. py n c a l l s t o t t i m e p e r c a l l cumtime p e r c a l l f i l e n a m e : l i n e n o ( f u n c t i o n ) 491 0.001 0.000 0.012 0.000 foo1 1285 0.002 0.000 0.002 0.000 foo2 284 0.000 0.000 0.000 0.000 foo3