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

Podobne dokumenty
Python. Wprowadzenie. Jolanta Bachan

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

Kurs rozszerzony języka Python

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

Wstęp do informatyki. Python 1

Wstęp do programowania

Wstęp do programowania

Programowanie obiektowe

Zaawansowany kurs języka Python

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan

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

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

Środowisko programisty

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Języki programowania wysokiego poziomu. PHP cz.2.

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

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

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

JAVAScript w dokumentach HTML - przypomnienie

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

Podstawy programowania w Pythonie

Zaawansowany kurs języka Python

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

Podstawy programowania w Pythonie

Harmonogramowanie, kosztorysowanie, planowanie budowy.

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

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

Wykresy i interfejsy użytkownika

Podstawy bioinformatyki 2017/18

Podstawowe wyrażenia matematyczne

Języki i metody programowania

Programowanie robota mobilnego E-puck w języku Python

Wykład 2 Składnia języka C# (cz. 1)

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

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

Przegląd języka Python. Łukasz Anwajler

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

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

Listy, krotki, słowniki, funkcje

Kurs rozszerzony języka Python

Cw.12 JAVAScript w dokumentach HTML

Ćwiczenie 5. Python 3: Programowanie obiektowe i dziedziczenie

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

Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright Spis treści

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści

Podstawy programowania w Pythonie

JAVAScript w dokumentach HTML (1)

Scenariusz Web Design DHTML na 10 sesji. - Strony statyczne I dynamiczne. - Dodawanie kodu VBScript do strony HTML. Rysunek nie jest potrzebny

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7

ZASADY PROGRAMOWANIA STRUKTURALNEGO (ZAP - zima 2016) Liczby, znaki, napisy, operatory logiczne, stałe. Pętle typu while.

Podstawy programowania skrót z wykładów:

Typy danych, cd. Łańcuchy znaków

Wstęp do programowania

Podstawy bioinformatyki 2017/18

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Języki i metody programowania

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

Metody numeryczne I. Programy wspomagajace obliczenia Maxima. Janusz Szwabiński.

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

Funkcje matematyczne w C. Programowanie w C Marek Pudełko

Podstawy programowania w Pythonie

Algorytmy i struktury danych

Podstawy Programowania Podstawowa składnia języka C++

Wstęp do programowania

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

Redis, skrypty w języku Lua

ECDL Podstawy programowania Sylabus - wersja 1.0

Podstawy bioinformatyki 2017/18

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Podstawy programowania. Python wykład 6

Programowanie obiektowe

Algorytmy i struktury danych


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

Programowanie i projektowanie obiektowe

PROGRAMOWANIE W JĘZYKU PYTHON

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

Kurs rozszerzony języka Python

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Podstawy programowania C. dr. Krystyna Łapin

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Programowanie i projektowanie obiektowe

Python wstęp. Michał Bereta

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

Programowanie obiektowe

Elementy metod numerycznych - zajęcia 9

Podstawy programowania w Pythonie

Liczby losowe i pętla while w języku Python

BIBLIOTEKA STANDARDOWA C++

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Wprowadzenie do Python

1 Podstawy c++ w pigułce.

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

ZASADY PROGRAMOWANIA STRUKTURALNEGO (ZAP - zima 2014) Wyrażenia c.d. Pętle typu while.

Transkrypt:

Wstęp do Pythona Janusz Szwabiński szwabin@ift.uni.wroc.pl Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36

Wstęp do Pythona Zasoby w sieci Python jako zaawansowany kalkulator Pierwszy program w Pythonie Moduły Wbudowane typy zmiennych Wyrażenie warunkowe, pętle Definiowanie funkcji Czytanie i pisanie do pliku Kilka słów o klasach Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.2/36

Zasoby w sieci Strona główna Pythona http://www.python.org Strona polska Pythona http://www.python.org.pl Narzędzia naukowe dla Pythona http://www.scipy.org/ VPython - wizualizacje 3D http://vpython.org/ Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.3/36

G. van Rossum, Python Tutorial http://www.python.org/doc/2.3.4/tut/tut.html M. Pilgrim, Dive into Python http://diveintopython.org/ A. Downey, J. Elkner, C. Meyers, How to think like a computer scientist http://www.greenteapress.com/thinkpython/ B. Eckel, Thinking in Python http://www.mindview.net/books/tipython Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.4/36

D. Mertz, Text Processing in Python http://gnosis.cx/tpip/ F. Lundh, An introduction to Tkinter http://www.pythonware.com/library/tkinter/introduction/ Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.5/36

Python interpretowany, wysokopoziomowy język programowania darmowy obiektowy dynamiczna semantyka i elegancka składnia bogata biblioteka standardowa idealny do tworzenia skryptów i tzw. błyskawicznego rozwijania aplikacji Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.6/36

Python jako zaawansowany kalkulator Pierwsza sesja w Pythonie: szwabin@defiant : ~ $ python Python 2. 3. 4 ( # 2, Dec 3 2004, 1 3 : 5 3 : 1 7 ) [GCC 3. 3. 5 ( Debian 1 : 3. 3. 5 2 ) ] on linux2 Type " help ", " copyright ", " c r e d i t s " or " l i c e n s e " f o r more information. >>> 2+2 4 >>> x=20 >>> y=2 3 >>> x y 120 >>> _ 1 2. 0 0.1 Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.7/36

Operatory arytmetyczne + / Operator przypisania >>> x = y = z = 0 >>> a, b = 1,2 Komentarze >>> 7/3 # d z i e l e n i e calkowite zwraca l i c z b e zaokraglona w dol 2 Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.8/36

Liczby zespolone >>> complex ( 2, 3 ) (2+3 j ) >>> 1 j 1 J ( 1+0 j ) >>> a = 1. 5 + 0. 5 j >>> a. r e a l 1. 5 >>> a. imag 0. 5 >>> abs ( a ) 1.5811388300841898 >>> help ( abs ) Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.9/36

Pierwszy program w Pythonie # rkwad. py # Program o b l i c z a j a c y p i e r w i a s t k i # rzeczywiste trojmianu kwadratowego import math a, b, c = input ( " Podaj wspolczynniki ( a, b, c ) : " ) pd = math. s q r t ( b x1 = ( b+pd)/(2 x2 = ( b pd)/(2 a ) a ) 2 4 a p r i n t "\ npierwiatki wynosza : x1 =", x1, " x2 =", x2 c ) Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.10/36

Moduły pliki zawierajace instrukcje Pythona definicje z modułu moga być importowane do przegladania modułów służy funkcja dir() >>> import math >>> dir ( math ) [ doc, f i l e, name, acos, asin, atan, atan2, c e i l, cos, cosh, degrees, e, exp, fabs, floor, fmod, frexp, hypot, ldexp, log, log10, modf, pi, pow, radians, sin, sinh, sqrt, tan, tanh ] Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.11/36

Sposoby importowania >>> import math >>> a=math. s q r t ( 2 ) >>> import math as m >>> a=m. s q r t ( 2 ) >>> from math import >>> a= s q r t ( 2 ) >>> from math import s q r t as squareroot >>> a=squareroot ( 2 ) Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.12/36

Łańcuchy znaków >>> s1 = " To j e s t lancuch znakow" >>> s2 = To j e s t inny lancuch znakow >>> s3 = " " " To j e s t lancuch znakow, ktory rozciaga s i e na wiele wierszy " " " >>> s4 = "\" Cytowanie \"" >>> p r i n t s4 " Cytowanie " >>> " Witaj " + " swiecie " Witaj swiecie >>> " Witaj " 3 WitajWitajWitaj Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.13/36

>>> g r e e t = " Witaj " >>> p r i n t g r e e t [ 0 ] W >>> g r e e t [ 2 : 4 ] ta >>> g r e e t [ 2 : ] t a j >>> len ( g r e e t ) 5 >>> p r i n t g r e e t [ 1], g r e e t [ j a >>> s t r ( 1 0 ) 10 >>> eval ( 3 + 4 ) 7 2] Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.14/36

Uwaga: łańcuchów znaków w Pythonie nie można modyfikować! >>> s =" Ala ma kota " >>> s [ 0 ] = "O" Traceback ( most r e c e n t c a l l l a s t ) : F i l e "< stdin >", l i n e 1, in? TypeError : o b j e c t doesn t support item assigment >>> Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.15/36

Biblioteka standardowa string: capitalize(s) rfind(s,substring) upper(s) replace(s,old,new) lower(s) strip(s) ljust(s) rstrip(s) center(s) lstrip(s) rjust(s) split(s,char) count(substring,s) join(stringlist) find(s,substring) Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.16/36

Złożone typy danych - listy >>> l i s t a =[" a ", " b ", " przyklad " ] >>> l i s t a [ 0 ] a >>> l i s t a [ 2 ] przyklad >>> l i s t a [ 1] przyklad >>> l i s t a. append ( nowy ) >>> l i s t a [ a, b, przyklad, nowy ] >>> l i s t a. i n s e r t ( 2, " t r z e c i " ) >>> l i s t a [ a, b, t r z e c i, przyklad, nowy ] Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.17/36

>>> l i s t a. extend ( [ jeden, dwa ] ) >>> l i s t a [ a, b, t r z e c i, przyklad, nowy, jeden, dwa ] >>> l i s t a. index ( t r z e c i ) 2 >>> c in l i s t a False >>> l i s t a. remove ( nowy ) >>> l i s t a [ a, b, t r z e c i, przyklad, jeden, dwa ] >>> l i s t a. pop ( ) dwa >>> l i s t a [ a, b, t r z e c i, przyklad, jeden ] Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.18/36

>>> l i s t a +[ inny, element ] [ a, b, t r z e c i, przyklad, jeden, inny, element ] >>> l i =[1,2] 3 [ 1, 2, 1, 2, 1, 2] >>> l i. s o r t ( ) >>> l i [ 1, 1, 1, 2, 2, 2] Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.19/36

Mapowanie list: >>> l i = [ 1, 2, 3, 4 ] >>> l i 2 = [ elem >>> l i 2 [ 1, 4, 9, 16] 2 f o r elem in l i ] Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.20/36

Złożone typy danych - krotki (ang. tuples) >>> t = ( " a ", " b ", " przyklad " ) >>> t [ 0 ] a >>> t [ 2 ] przyklad >>> t [ 1] przyklad >>> a in t True Krotki nie moga być modyfikowane! >>> t [2]=3 Traceback ( most r e c e n t c a l l l a s t ) : F i l e "< stdin >", l i n e 1, in? TypeError : o b j e c t doesn t support item assignment Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.21/36

Złożone typy danych - słowniki >>> d = { " server " : " d e f i a n t ", " user " : " szwabin " } >>> d { user : szwabin, server : defiant } >>> d [ server ] defiant >>> d [ server ] = voyager >>> d { user : szwabin, server : voyager } >>> d [ uid ]=501 >>> d { uid : 501, user : szwabin, server : voyager } >>> del d [ uid ] >>> d { user : szwabin, server : voyager } Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.22/36

>>> d. c l e a r ( ) >>> d { } >>> d = { " server " : " d e f i a n t ", " user " : " szwabin " } >>> d { user : szwabin, server : defiant } >>> d. keys ( ) [ user, server ] >>> d. values ( ) [ szwabin, defiant ] >>> d. items ( ) [ ( user, szwabin ), ( server, defiant ) ] Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.23/36

Pętla while >>> a, b =0,1 >>> while b <10:... p r i n t b,... a, b = b, a+b... 1 1 2 3 5 8 operatoty porównania: < > == <= >= każda sekwencja o długości niezerowej oznacza prawdę Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.24/36

Instrukcja if >>> x = i n t ( raw_input ( " Podaj l i c z b e : " ) ) >>> i f x < 0 :... p r i n t l i c z b a ujemna... e l i f x == 0 :... p r i n t zero... e l s e :... p r i n t l i c z b a dodatnia... Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.25/36

Pętla for Iteracja po elementach sekwencji: >>> a = [ jeden, dwa, trzy ] >>> f o r x in a :... p r i n t x, len ( x )... jeden 5 dwa 3 trzy 4 Iteracja od liczby do liczby z użyciem funkcji range(): >>> f o r i in range ( 1 0 ) :... p r i n t i,... 0 1 2 3 4 5 6 7 8 9 Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.26/36

Definiowanie funkcji >>> def f i b ( n ) :... " Ciag Fibonacciego "... a, b = 0, 1... while b < n :... p r i n t b,... a, b = b, a+b... >>> f i b ( 2 0 0 0 ) 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.27/36

>>> def f i b 2 ( n ) :... " Wartosci ciagu Fibonacciego "... wynik = [ ]... a, b = 0, 1... while b < n :... wynik. append ( b )... a, b = b, a+b... return wynik... >>> f100 = f i b 2 ( 1 0 0 ) >>> f100 [ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.28/36

Możliwości: domyślne wartości argumentów argumenty kluczowe wywołania funkcji z dowolna liczba argumentów funkcje anonimowe Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.29/36

Czytanie i pisanie do plików szwabin@voyager :~ $ c a t lud. dat 1850.0 1.402 1950.0 2.486 1960.0 3.014 1970.0 3.683 1985.0 4.842 2000.0 6.127 2025.0 8.177 Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.30/36

>>> import s t r i n g >>> x = [ ] ; y = [ ] >>> f =open ( lud. dat, r ) >>> l i n e s = f. r e a d l i n e s ( ) >>> f o r l i n e in l i n e s :... xval, yval= l i n e. s p l i t ( )... x. append ( f l o a t ( xval ) )... y. append ( f l o a t ( yval ) )... >>> f. c l o s e ( ) >>> x [ 1 8 5 0. 0, 1 9 5 0. 0, 1 9 6 0. 0, 1 9 7 0. 0, 1 9 8 5. 0, 2 0 0 0. 0, 2 0 2 5. 0 ] >>> y [1.4019999999999999, 2.4860000000000002, 3.0139999999999998, 3.6829999999999998, 4.8419999999999996, 6.1269999999999998, 8.1769999999999996] Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.31/36

>>> x = [ 1. 0, 2. 0, 3. 0, 4. 0, 5. 0, 6. 0 ] >>> y=[ i 2 f o r i in x ] >>> f =open ( kwadrat. dat, w ) >>> f o r i in range ( len ( x ) ) :... f. write ( %g %g\n % ( x [ i ], y [ i ] ) )... >>> f. c l o s e ( ) szwabin@voyager : ~ $ c a t kwadrat. dat 1 1 2 4 3 9 4 16 5 25 6 36 Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.32/36

Kilka słów o klasach import s t r i n g c l a s s Data : Klasa do przechowywania danych numerycznych def i n i t ( s e l f ) : s e l f. x = [ ] ; s e l f. y = [ ] def fread ( s e l f, filename ) : Wczytuje dane z pliku s e l f. x = [ ] ; s e l f. y = [ ] f i l e =open ( filename, r ) l i n e s = f i l e. r e a d l i n e s ( ) f o r l i n e in l i n e s : xval, yval= l i n e. s p l i t ( ) s e l f. x. append ( f l o a t ( xval ) ) s e l f. y. append ( f l o a t ( yval ) ) f i l e. c l o s e ( ) Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.33/36

def f w r i t e ( s e l f, filename ) : Zapisuje dane do pliku f i l e =open ( filename, w ) f o r i in range ( len ( s e l f. x ) ) : f i l e. write ( %g %g\n % ( s e l f. x [ i ], s e l f. y [ i ] ) ) f i l e. c l o s e ( ) Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.34/36

>>> from MyData import >>> d = Data ( ) >>> p r i n t d. x, d. y [ ] [ ] >>> d. fread ( lud. dat ) >>> d. x [ 1 8 5 0. 0, 1 9 5 0. 0, 1 9 6 0. 0, 1 9 7 0. 0, 1 9 8 5. 0, 2 0 0 0. 0, 2 0 2 5. 0 ] >>> d. y [1.4019999999999999, 2.4860000000000002, 3.0139999999999998, 3.6829999999999998, 4.8419999999999996, 6.1269999999999998, 8.1769999999999996] Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.35/36

wszystkie składowe klasy pythonowej sa publiczne, a wszystkie funkcje składowe sa wirtualne (w terminologii C++) obiekt w Pythonie nie zawsze oznacza instancję klasy definicje klas musza zostać wykonane, zanim zostana użyte nazwy atrybutów przesłaniaja te same nazwy metod Python wspiera dziedziczenie (również wielorakie) ograniczony mechanizm implementacji zmiennych prywatnych klasy ( element) Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.36/36