Python wprowadzenie. Centrum Astronomii UMK. Krzysztof Katarzyński. Nikt nie spodziewa się Hiszpańskiej Inkwizycji! Latajacy Cyrk Monty Pythona

Podobne dokumenty
Podstawy programowania w Pythonie

Przegląd języka Python. Łukasz Anwajler

Matplotlib. Krzysztof Katarzyński. Centrum Astronomii UMK

Programowanie współbieżne Zadanie 5 - Podstawowe problemy programowania współbieżnego

Wykresy i interfejsy użytkownika

Zaawansowany kurs języka Python

Kurs rozszerzony języka Python

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

PYTHON NA LEKCJACH INFORMATYKI W SZKOLE PONADGIMNAZJALNEJ

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

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

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

Wykład 1

DYNAMICZNE PRZYDZIELANIE PAMIECI

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Python. Wprowadzenie. Jolanta Bachan

Języki programowania do zastosowań biomedycznych

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

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

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Wstęp do programowania

Python podstawy programowania

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

Podstawy Programowania.

Instrukcja instalacji oprogramowania dla środowiska Linux

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Zmienne, stałe i operatory

Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology

1) Liczba zapisana w systemie binarnym to w systemie dziesiętnym: a) 54; b) 46; c) 56; d) 44;

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


W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Sphinx - system dokumentacji dla Pythona

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Wstęp do programowania

Kurs rozszerzony języka Python

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

Wprowadzenie do Python

Wstęp do Informatyki dla bioinformatyków

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Technologie cyfrowe semestr letni 2018/2019

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Technologie Informacyjne

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

1 Podstawy c++ w pigułce.

Podstawy Programowania

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Tworzenie oprogramowania

Wprowadzenie do języka Python

Wstęp do Programowania, laboratorium 02

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

LINUX. Instalacja oprogramowania

Wprowadzenie do języka Java

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

Język ludzki kod maszynowy

Utworzenie pliku. Dowiesz się:

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

Praktyka Programowania

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Wstęp do Informatyki i Programowania Laboratorium: Lista 1 Środowisko programowania

2 Przygotował: mgr inż. Maciej Lasota

ABIX Cyfrowa edukacja z oprogramowaniem Open Source

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Podstawy programowania C. dr. Krystyna Łapin

Fizyka laboratorium 1

Programowanie obiektowe

Podstawy i języki programowania

Technologie Informacyjne Mechatronika 2012/2013 Błędy obliczeń. Python.

CODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE

1.Wstęp. 2.Generowanie systemu w EDK

Język C zajęcia nr 7. Uwagi dotyczące stylu programowania

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Komunikacja Człowiek-Komputer

Wstęp do programowania

Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).

Programowanie w języku Python. Grażyna Koba

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Co nie powinno być umieszczane w plikach nagłówkowych:

JAVA?? to proste!! Autor: wojtekb111111

Transkrypt:

Python wprowadzenie Krzysztof Katarzyński Centrum Astronomii UMK Nikt nie spodziewa się Hiszpańskiej Inkwizycji! Latajacy Cyrk Monty Pythona

Geneza Pythona Python jest językiem programowania stworzonym przez holenderskiego programistę Guido van Rossuma. W zamyśle twórcy, język ten ma charakteryzować się: łatwościa programowania, możliwościami porównywalnymi z innymi językami (np. C czy Fortran), Guido van Rossum krótkim czasem programowania, oraz otwartościa kodu. Spory wkład w rozwój Pythona włożyło też wiele innych osób, które nie sposób wymienić... Nazwa języka pochodzi od serialu komediowego Monty Python s Flying Circus (Latajacy Cyrk Monty Pythona), którego fanem jest van Rossum. Latajacy Cyrk Monty Pythona Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 2/15

Python zalety Logo Pythona Do zalet Pythona można zaliczyć to że: jest językiem wysokiego poziomu, szczególnie przyjaznym dla poczatkuj acych programistów, posiada rozbudowana bibliotekę standardowa, istnieje ogromna baza dodatkowych modułów (bibliotek), które pozwalaja realizować najbardziej złożone projekty programistyczne, wspiera różne paradygmaty programowania, np. programowanie obiektowe, imperatywne, funkcyjne, posiada dynamiczny system typów danych oraz automatyczne zarzadzanie pamięcia, jest oprogramowaniem typu Open Source, dostępnym za darmo na wiele różnych systemów operacyjnych, programy pisane w Pythonie działaja bez dodatkowych modyfikacji na różnych systemach/komputerach, kod programu napisanego w Pythonie jest zwykle dużo krótszy od tego co trzeba napisać w innych językach aby uzyskać identyczny rezultat, schemat programowania w Pythonie niejako wymusza pisanie przejrzystych, klarownych kodów. Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 3/15

Przykład bardzo prostego programu Program tworzy ciagi liczb x=[0,...,4] oraz y=[4,...,0] a następnie mnoży ich zawartość i umieszcza wynik w zmiennej z. Najważniejsze kroki wypisywane sa na ekran. 1 # stosujac tylko podstawowe polecenia Pythona 2 c = list (" 01234 ") 3 x = map ( float, c) 4 n = len (x) 5 y = [] 6 z = [] 7 for i in range ( n): 8 y. append (x[n-i -1]) 9 print x 10 print y 11 for i in range ( len (x )): 12 z. append (x[i]*y[i]) 13 print z Program wykorzystuje podstawowe funkcje, zawsze dostępne, wbudowane w Pythona. Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 4/15

2 Ten sam program napisany w C 1 # include <stdio.h> 2 # define n 5 3 double x[n], y[n], z[n]; 4 int main ( void ) { 5 int i; 6 for (i =0; i<n; i ++) { 7 x[i] = i; 8 y[i] = n-i -1; 9 } 10 printf ("["); 11 for (i =0; i<n; i ++) { 12 if (i <(n -1)) 13 printf (" %3.1f, ", x[i ]); 14 else 15 printf (" %3.1 f]\n", x[i ]); 16 } 17 printf ("["); 18 for (i =0; i<n; i ++) { 19 if (i <(n -1)) 20 printf (" %3.1f, ", y[i ]); 21 else 22 printf (" %3.1 f]\n", y[i ]); 23 } 24 printf ("["); 25 for (i =0; i<n; i ++) { 26 z[i] = x[i]*y[i]; 27 if (i <(n -1)) 28 printf (" %3.1f, ", z[i ]); 29 else 30 printf (" %3.1 f]\n", z[i ]); 31 } 32 return 0; 33 } Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 5/15

A można jeszcze prościej! Wykorzystujac funkcje linspace (ang. linear space liniowy/równy odstęp) z modułu numpy (numeryczny Python) możemy jeszcze bardziej uprościć nasz przykładowy program: 1 # z uzyciem modulu numpy 2 from numpy import linspace 3 x = linspace (0.0, 4.0, 5) 4 y = linspace (4.0, 0.0, 5) 5 print x 6 print y 7 z = x* y 8 print z linspace pozwala odpowiednio utworzyć zmienne x i y, które następnie mnożymy jak dwie liczby chociaż faktycznie sa to ciagi liczb. Dodatkowo można dynamicznie dodawać lub usuwać dowolne części utworzonych ciagów, co w programie napisanym w C wymagałoby znacznego skomplikowania kodu. Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 6/15

4 SimplePlot przykład programu z GUI 1 #!/ usr /bin /env python 2 # -*- coding : utf -8 -*- 3 # NAG ŁÓ WKI 4 import gtk 5 from pylab import * 6 from matplotlib. figure import Figure 7 from matplotlib. backends. backend_gtkagg import FigureCanvasGTKAgg as FCanvas 8 from matplotlib. backends. backend_gtkagg import NavigationToolbar2GTKAgg as NTool 9 # OBSZAR RYSOWANIA 10 PlotFIG = Figure ( figsize=(8,6), dpi =100) 11 PlotAXI = PlotFIG. add_subplot (111) 12 PlotCNV = FCanvas ( PlotFIG ) 13 # OKNO I INTERFEJS UŻ YTKOWNIKA 14 MainWin = gtk. Window () 15 MainWin. connect (" destroy ", lambda x: gtk. main_quit ()) 16 MainWin. set_default_size (800, 600) 17 MainWin. set_title (" Simple Plot v0.2") 18 MainVBX = gtk. VBox () 19 MainWin.add ( MainVBX ) 20 MainVBX. pack_start ( PlotCNV ) 21 MainTBR = NTool ( PlotCNV, MainWin ) 22 MainVBX. pack_start (MainTBR, False, False ) 23 FuncHBX = gtk. HBox () 24 FuncLAB = gtk. Label ("f(x) = ") 25 FuncHBX.add ( FuncLAB ) 26 FuncENT = gtk. Entry () 27 FuncHBX.add ( FuncENT ) 28 FuncBUT = gtk. Button ("Plot ") 29 FuncHBX.add ( FuncBUT ) 30 MainVBX. pack_start (FuncHBX, expand=false ) Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 7/15

5 SimplePlot cd. 31 # PROCEDURA RYSUJ ĄCA 32 def Plot (self, event ): 33 xd = linspace ( -10, 10, 1000) 34 yd = linspace (0, 1, len (xd )) 35 for i in range ( len (xd )): 36 x = xd[i] 37 yd[i] = eval ( FuncENT. get_text ()) 38 PlotAXI.plot (xd, yd, label=funcent. get_text ()) 39 PlotAXI. legend () 40 PlotCNV. draw () 41 FuncBUT. connect (" button_press_event ", Plot ) 42 # START PROGRMU 43 MainWin. show_all () 44 gtk. main () 1.0 0.5 sin(x)/x exp(-x**2) sin(x/2.0) 0.0 0.5 1.0 10 5 0 5 10 Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 8/15

Python gdzie znaleźć, jak zainstalować Systemy operacyjne MS Windows, Mac OS X oraz również Linux: www.enthought.com CANOPY www.enthought.com/products/canopy a www.activestate.com ActivePython www.activestate.com/activepython Sa to komercyjne dystrybucje Pythona, które w podstawowych wersjach musza być rozpowszechniane za darmo (Open Source). Podstawowe wersje zawieraja Pythona plus kilkadziesiat najważniejszych modułów oraz zintegrowane środowisko programistyczne czyli prawie wszystko co będzie potrzebne w trakcie tego kursu. Podstawowa wersja Pythona dostępna jest również, oczywiście na stronie projektu www.python.org (www.python.org/download). Nie zawiera ona jednak dodatkowych modułów oraz środowiska programistycznego. a Szczegółowe odnośniki moga się zmieniać. Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 9/15

Dystrybucja Enthought CANOPY Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 10/15

CANOPY menadżer modułów Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 11/15

Python pod Linuxem Python w różnych dystrybucjach Linuxa jest instalowany w trakcie instalacji systemu operacyjnego. Zwykle jednak trzeba doinstalować dodatkowe moduły: Linux Debian, Ubuntu, Mint i pochodne: sudo apt - get install python - scipy python - sympy Linux Mandriva i pochodne: sudo urpmi python - scipy python - sympy Linux Fedora i pochodne: sudo yum install python - scipy python - sympy Instalujemy wersje 2.7.x, wersja 3.3.x nie weszła jeszcze do powszechnego użytku. Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 12/15

Python online Tzw. konsolę tekstowa Pythona można przetestować w przegladarce internetowej pod adresami: pythonwebconsole.thomnichols.org shell.appspot.com py-ide-online.appspot.com zatwierdzamy Ctrl-Enter www.pythonanywhere.com strona komercyjna live.sympy.org obliczenia symboliczne Nie sa to wszystkie dostępne konsole Pythona online. Python jest bardzo popularnym językiem programowania i co za tym idzie można znaleźć więcej tego typu stron. Należy jednak pamiętać, że sa to zwykle podstawowe a często nawet przestarzałe wersje Pythona. Interfejs przegladarki internetowej oraz brak dodatkowych modułów bardzo ograniczaja możliwości tego języka. Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 13/15

Pomoc online i podręczniki W internecie: Podręcznik programisty Pythona - opis języka Guido van Rossum, pl.python.org/docs/ref/ref.html Zanurkuj w Pythonie Mark Pilgrim i inni, pl.wikibooks.org/wiki/zanurkuj_w_pythonie Oficjalna dokumentacja Pythona docs.python.org Think Python. How to Think Like a Computer Scientist Allen B. Downey www.greenteapress.com/thinkpython/thinkpython.html W księgarni: Python. Wprowadzenie Mark Lutz, wyd. HELION Python. Od podstaw praca wieloautorska, wyd. HELION Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 14/15

Lista programów 1./python/przyklad_P1.py 2./python/przyklad_C.c 3./python/przyklad_P2.py 4./python/splot_v02.py Krzysztof Katarzyński, CA UMK Wprowadzenie, strona 15/15

Wszelkie prawa zastrzez one! Rozpowszechnianie oraz wykorzystywanie kursu i programów do niego dołaczonych, w całos ci lub fragmentach bez zgody autora jest zabronione!