Modelowanie procesów fizycznych w reaktorach jadrowych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Modelowanie procesów fizycznych w reaktorach jadrowych"

Transkrypt

1 Modelowanie procesów fizycznych w reaktorach jadrowych Krzysztof Miernik Zakład Fizyki Jadrowej Wydział Fizyki Uniwersytet Warszawski 1

2 Wykład 2: Wprowadzenie do Pythona 2

3 Język Python Stworzony w 1991 przez Guido van Rossuma Nazwa pochodzi od Monty Python Flying Circus Jest językiem wysokiego poziomu ogólnego przeznaczenia Jednym z naczelnych założeń projektowych jest czytelność kodu Umożliwia programowanie proceduralne, obiektowe i funkcyjne Typowanie dynamiczne i słabe Automatyczne zarzadzanie pamięcia Bardzo bogata biblioteka standardowa (batteries included) Nieprawdopodobnie bogate biblioteki dodatkowe (i sa łatwe do instalowania) Dlaczego Python? 3

4 Python, a inne języki Dlaczego Python? 4

5 Dlaczego Python? Google Trends popularno zapyta wzgl dem kategorii Programowanie Python C++ Fortran Dlaczego Python? 5

6 Dlaczego Python? Nature 518, 7537 (2015) Dlaczego Python? 6

7 Wprowadzenie do Pythona Python jako kalkulator liczby, ciagi znaków, listy instrukcje while, if, for skrypty, moduły listy, krotki, słowniki metody wejścia/wyjścia programowanie obiektowe biblioteka standardowa inne biblioteki Podstawy Pythona 7

8 Python jako kalkulator Duża część przykładów pochodzi z oficjalnego wprowadzenia do Pythona Obliczenia w interpreterze >>> >>> 12 * >>> 12 * ( ) >>> 17 / 3 >>> 17 // 3 >>> 17 % 3 >>> 2**3 >>> 2**(1/2) >>> -3**2 >>> (-3)**2 >>> width = 20 >>> height = >>> width * height >>> _ / 10**2 Podstawy Pythona 8

9 Łańcuchy znaków (1) Definiowanie łańcucha, polecenie print >>> spam eggs >>> doesn\ t >>> "doesn t" >>> "Yes", he said. >>> "\"Yes\", he said." >>> First line.\nsecond line. >>> s = First line.\nsecond line. >>> print(s) >>> print( C:\some\name ) >>> print(r C:\some\name ) >>> print("""\ Ala ma kota """) >>> 3 * un + ium Podstawowe struktury danych 9

10 Łańcuchy znaków (2) Podzbiory łańcucha, operacje >>> prefix = Py >>> glued = prefix + thon >>> glued[0] >>> glued[5] >>> glued[-1] >>> glued[-2] >>> glued[0:2] >>> glued[-2:] >>> glued[:2] >>> glued[:2] + glued[2:] >>> glued[0] = C >>> C + glued[1:] >>> len(glued) Podstawowe struktury danych 10

11 Łańcuchy znaków (3) Formatowanie łańcucha >>> print( {}.format( string )) >>> print( {} ma {}.format( ala, kota )) >>> s = "{0} {1} {2}" >>> s = s.format( Ala, ma, kota ) >>> print(s) >>> s = "{kto} {co} {kogo}" >>> s = s.format(kto= Ala, co= ma, kogo= kota ) >>> print(s) >>> pi = >>> print(pi) >>> print( {:.3f}.format(pi)) >>> print( {:.3e}.format(pi)) >>> print( {: 8.3f}.format(pi)) >>> print( {:#^8.1f}.format(pi)) >>> print( {:*>8.1f}.format(pi)) >>> print( {:$<8.1f}.format(pi)) Podstawowe struktury danych 11

12 Listy Definiowanie, podstawowe operacje >>> squares = [1, 4, 9, 16, 25] >>> squares >>> squares[2] >>> squares[-1] >>> squares[0:2] >>> squares + [35, 49, 64, 81, 100] >>> squares = squares + [35, 49, 64, 81, 100] >>> squares >>> squares[5] = 36 >>> squares >>> len(squares) >>> letters = [ a, b, c ] >>> mix = squares + letters >>> mix >>> mix = [squares, letters] >>> mix >>> mix[0][3] >>> mix[1][2] Podstawowe struktury danych 12

13 Skrypty Program można zapisać w postaci skryptu w pliku tekstowym z rozszerzeniem *.py. Np. test.py squares = [1, 4, 9, 16, 25] print(squares) squares = squares + [35, 49, 64, 81, 100] print(squares) squares[5] = 36 print(squares) Skrypt można uruchomić poleceniem $ python test.py Kolejne przykłady będa wykorzystywały tę metodę zamiast interaktywnej powłoki Pythona. Skrypty 13

14 Instrukcja while Uwaga - w języku Python wcięcia definuja bloki kodu. Należy używać albo spacji, albo tabulatorów, ale nie wolno ich mieszać! a = 0 while a < 5: print(a) a += 1 a, b = 0, 1 while b < 10: print(b) a, b = b, a+b a, b = 0, 1 while b < 100: print(b, end=, ) a, b = b, a+b Instrukcje kontrolne 14

15 Instrukcja if x = 3 if x < 0: x = 0 print( Negative changed to zero ) elif x == 0: print( Zero ) elif x == 1: print( One ) else: print( More ) Instrukcje kontrolne 15

16 Pętla for (1) Pętla for porusza się po liście lub innej sekwencji z iteratorem cats = [ natasza, marusia, bolek, lolek ] for c in cats: print(c) Jeżeli chcemy dostać ciag arytmetyczny możemy użyć funkcji range for i in range(5): print(i) for i in range(5, 10): print(i) for i in range(0, 10, 3): print(i) for i in range(10, -5, -2): print(i) Ponieważ długość listy zwraca funkcja len, łatwo jest wygenerować ciag arytmetyczny odpowiadajacy danej liście elementów for i in range(len(cats)): print(i, cats[i]) Instrukcje kontrolne 16

17 Pętla for (2) W rzeczywistości range nie generuje listy, tylko iterator print(range(5)) print(list(range(5))) W pętli for możemy stosować polecenia break i continue. for num in range(2, 10): if num % 2 == 0: print("found an even number", num) continue print("found a number", num) Polecenie else jest wykonywane tylko jeżeli pętla nie zostanie przerwana przez break. for n in range(2, 20): for x in range(2, n): if n % x == 0: print(n, equals, x, *, n//x) break else: print(n, is a prime number ) Instrukcje kontrolne 17

18 Pętla while Polecenia continue, break, else można stosować w analogiczny sposób także w pętli while. x = 10 n = 7 while x > 0: if x % n == 0: print(x, is divisible by, n) break x -= 1 else: print( while - else ) Polecenie pass wykonuje pusta instrukcję i może być użyte w miejscach wymaganych przez składnię (np. jako puste miejse do wypełnienia w przyszłości. print( Press ctrl+c ) while True: pass Instrukcje kontrolne 18

19 Listy i ich metody (1) append, extend, insert, remove, pop, index, count, sort, reverse l = [3, 5, 1] print( list, l) l.append(9) print( append, l) l.extend([7, 13]) print( extend, l) l.insert(5, 11) print( insert, l) l.remove(1) print( remove, l) print(l.pop()) print( pop(), l) print(l.pop(2)) print( pop(2), l) print( 5 at position, l.index(5)) print( 11 appears, l.count(11), times ) l.sort(reverse=true) print( sort, reverse, l) l.reverse() print( reversed, l) Struktury danych 19

20 Listy i ich metody (2) copy, clear, del m = l.copy() print( copy, l, m) l.clear() print( clear, l, m) del nie zwraca wartości i usuwa element (lub zmienna) del m[0] print( del, m) del m[0:2] print( del, m) del m #print( del, m) Struktury danych 20

21 Kopiowanie list l = [1, 2, 3] m = l l[0] = 4 print(l, m) m jest tylko referencja do listy. Aby mieć dwie niezależne listy, musimy zrobić kopię. m = l.copy() l[0] = 1 print(l, m) l = [[0], [0], [0]] print(l) m = l.copy() l[0].append(1) print( l =, l, ; m =, m) Ta kopia jest tzw. kopia płytka i nie działa w przypadku zagnieżdżonych struktur. Trzeba użyć kopii głębokiej (o słowie import będzie później). import copy n = copy.deepcopy(l) l[1].append(1) print( l =, l, ; m =, m, ; n =, n) Struktury danych 21

22 Listy składane squares = [] for i in range(1, 10): squares.append(i**2) print(squares) To samo tylko szybciej (comprehension list) squares = [i**2 for i in range(1, 10)] print(squares) pairs = [(x, y) for x in range(1, 5) for y in range(1, 5) if x < y] print(pairs) pairs = [[(x, y) for x in range(1, z) for y in range(1, z) if x < y] for z in range(3, 6)] for i, p in enumerate(pairs): print(i, p) Struktury danych 22

23 Krotki i zbiory Krotki (tuple) sa podobne do list, ale sa niezmienne t = 1, 2, 3 r = (1, 2, 3) print(t, r) #t[0] = 0 #r[0] = 0 Zbiory (sets) sa jak zbiory matematyczne (nie może być duplikatów) s = {0, 0, 1, 1, 2, 3} print(s) Operator in odpowiada na pytanie o należność do zbioru (także listy, krotki, itd.) print(0 in s) print( Is in the set ) if 4 in s else print( Not in the set ) Struktury danych 23

24 Słowniki Słownik (dict) zawiera pary klucz - wartość (klucz musi być unikatowy) d = { Marek : 2.64, Krzysiek : 2.65, Agnieszka : 2.66 } print(d) print(d[ Marek ]) for k, v in d.items(): print(k, v) Klucz musi być niezmienny, więc np. tworzac mapę nuklidów (A, Z) musimy użyć tupli, a nie list jako kluczy. elements = {0 : n, 1 : H, 2 : He, 3 : Li, 4 : Be, 5 : B, 6 : C } nuclides = {} for z in range(len(elements)): for a in range(z, 3 * z): nuclides[(a, z)] = {}{}.format(a, elements[z]) print(nuclides) print( sort by key ) for n in sorted(nuclides.items()): print(n) Struktury danych 24

25 Funkcje (1) Funkcje tworzy się za pomoca składni def pitagoras(a, b): return (a**2 + b**2)**(1/2) a woła poprzez pitagoras(3, 4) Parametry moga mieć nadane domyślne wartości def arguments(x, x_max=1, dx=0.1): while x < x_max: print(x, x**(1/2)) x += dx wywołanie może mieć wtedy następujace postaci arguments(0.0) arguments(0.0, 2.0) arguments(0.0, dx=0.05) Funkcje 25

26 Funkcje (2) Odzyskiwanie parametrów w postaci listy i słownika def foo(i, j=1, *arguments, **keywords): print( i =, i) print( j =, j) print( arguments ) for arg in arguments: print(arg) print( keys ) for key in keywords.keys(): print(key) print( values ) for value in keywords.values(): print(value) print( items ) for item in keywords.items(): print(item) print( keys and values ) for key, value in keywords.items(): print(key, value) foo(0, 1, 2, 3, a=4, b=5, c=6) Funkcje 26

27 Funkcje (3) Parametr domyślny jest wyznaczany tylko raz i w miejscu deklaracji, co ma konsekwencje w pewnych przypadkach x = 5 def f1(arg=x): print(x) x = 6 f1() def f2(a, l=[]): l.append(a) return l print(f2(0)) print(f2(1)) Funkcje 27

28 Funkcja anonimowa Funkcja anonimowa (lambda) cubic = lambda x: x**3 print(cubic(2)) W szczególności można ich użyć przy sortowaniu list czy słowników for n in sorted(nuclides.items(), key=lambda x: x[0][1] ): print(n) Funkcje 28

29 Dokumentacja Funkcje (a także inne elementy) powinno się opisywać łańcuchem dokumentacyjnym (docstring). Python automatycznie obsługuje tak tworzona dokumentację. def foo(x): """Podnosi parametr x do kwadratu Bardzo prosta funkcja (bez sensu) """ return x**2 print(foo. doc ) Dokumentacja 29

30 Moduły Moduł to plik z rozszerzeniem *.py zawierajacy funkcje (i klasy), który można importować i używać w innym module. Plik nuclear_masses.py """ This module contains various methods of calculating nuclear masses. """ def LDM(A, Z, params=standard_params): """Liquid Drop Model""" pass def experimental_mass(a, Z, database= AME2013.dat ): pass if name == main : pass Jeżeli wywołamy powyższy plik jako skrypt, to wykonaja się polecenia obwarowane instrukcja if. Jeżeli natomiast zaimportujemy do innego skryptu, to ta część zostanie pominięta. Moduły i pakiety 30

31 Moduły Importowanie modułu import nuclear_masses nuclear_masses.ldm(10, 20) Importowanie wybranych funkcji from nuclear_masses import LDM LDM(10, 20) lub wszystkich (zwykle nie używane) from nuclear_masses import * LDM(10, 20) Moduły i pakiety 31

32 Pakiety Pakiety to moduły, które zawieraja inne moduły (w formie hierarchicznego drzewa) Taki pakiet to np. biblioteka matplotlib służaca do tworzenia wykresów. Zwykle importowany jest tylko moduł pyplot zawierajacy API użytkownika, ale czasem przydaja się inne elementy, np. moduł pozwalajacy na tworzenie animacji animation. import matplotlib.pyplot import matplotlib.animation matplotlib.pyplot.plot(x, y, - ) matplotlib.animation.funcanimation() Wygodnie jest zamiast długiej nazwy zaimportować moduł pod skrócona (dowolna) nazwa import matplotlib.pyplot as plt import matplotlib.animation as movie plt.plot(x, y, - ) movie.funcanimation() Moduły i pakiety 32

33 Pliki Funkcja open zwraca obiekt powiazany z plikiem, w zależności od trybu otwarcia może być on do odczytu (r), pisania (w, istniejacy plik zostaje skasowany), dopisywania (a), odczytu i zapisu (r+). Dodanie litery b do trybu oznacza tryb binarny, w innym przypadku jest to tryb tekstowy. data_file = open( data.txt, r) Funkcja read służy do czytania danych, read() wczyta cały plik, read(size) wczyta size bajtów. data_file.read(10) Funkcja readline wczytuje jedna linię tekstu (łacznie ze znakiem końca linii). data_file.readline() for line in data_file: print(line, end= ) write służy do pisania w pliku, natomiast seek i tell odpowiednio przesuwaja i zwracaja położenie bieżacej pozycji w pliku. data_file.write( {} {} {} \n.format(0, 0, 1) data_file.seek(10) data_file.tell() Operacje I/O 33

34 Błędy Prosty program w C++, z drobnym błędem #include <iostream> #include <vector> int main() { std::vector<int> v; if (v > 0) v.pop_back(); } i wynik kompilacji (149 linii) /usr/include/c++/6.3.1/bits/stl_iterator.h:906:5: note: template argument deduction/substitution failed: a.cpp:7:13: note: std::vector<int> is not derived from const gnu_cxx:: normal_iterator<_iterator, _Container> if (v > 0) ^ In file included from /usr/include/c++/6.3.1/bits/stl_algobase.h :67:0, from /usr/include/c++/6.3.1/bits/char_traits.h :39, from /usr/include/c++/6.3.1/ios:40, from /usr/include/c++/6.3.1/ostream:38, from /usr/include/c++/6.3.1/iostream:39, Wyjatki 34

35 Błędy w Pythonie Podobny program l = [0, 1, 2] if l > 0: l.pop() i próba uruchomienia Traceback (most recent call last): File "test.py", line 2, in <module> if l > 0: TypeError: > not supported between instances of list and int Wszelkie błędy sa zwracane w postaci wyjatków (Exception), należacych do odpowiednich klas. Powyżej mamy bład typu (TypeError). Program wcale nie musi przerywać działania w takiej sytuacji, możliwa jest odpowiednia obsługa wyjatku. data_file = open( data.txt ) counter = 0 for line in data_file: try: counter += int(line) except TypeError: pass Wyjatki 35

36 Programowanie obiektowe Podejście obiektowe jest próba opisu skomplikowanych systemów za pomoca abstrakcji. Programowanie obiektowe 36

37 Programowanie obiektowe Podejście obiektowe jest próba opisu skomplikowanych systemów za pomoca abstrakcji. Tworzymy obiekty, z którymi się komunikujemy (i które moga się komunikować między soba), które realizuja zadania dzięki wewnętrznym metodom. Programowanie obiektowe 36

38 Programowanie obiektowe Podejście obiektowe jest próba opisu skomplikowanych systemów za pomoca abstrakcji. Tworzymy obiekty, z którymi się komunikujemy (i które moga się komunikować między soba), które realizuja zadania dzięki wewnętrznym metodom. Problem dzielimy na pewne zadania, które przypisujemy obiektom i w pewnym sensie nie interesuje nas jak dany obiekt rozwiaże zadanie, o ile robi to zgodnie z oczekiwaniami. Niepotrzebne informacje sa ukryte wewnatrz obiektu. Programowanie obiektowe 36

39 Programowanie obiektowe Podejście obiektowe jest próba opisu skomplikowanych systemów za pomoca abstrakcji. Tworzymy obiekty, z którymi się komunikujemy (i które moga się komunikować między soba), które realizuja zadania dzięki wewnętrznym metodom. Problem dzielimy na pewne zadania, które przypisujemy obiektom i w pewnym sensie nie interesuje nas jak dany obiekt rozwiaże zadanie, o ile robi to zgodnie z oczekiwaniami. Niepotrzebne informacje sa ukryte wewnatrz obiektu. Każdy obiekt należy do pewnej klasy. Programowanie obiektowe 36

40 Programowanie obiektowe Podejście obiektowe jest próba opisu skomplikowanych systemów za pomoca abstrakcji. Tworzymy obiekty, z którymi się komunikujemy (i które moga się komunikować między soba), które realizuja zadania dzięki wewnętrznym metodom. Problem dzielimy na pewne zadania, które przypisujemy obiektom i w pewnym sensie nie interesuje nas jak dany obiekt rozwiaże zadanie, o ile robi to zgodnie z oczekiwaniami. Niepotrzebne informacje sa ukryte wewnatrz obiektu. Każdy obiekt należy do pewnej klasy. Każdy obiekt ma swoje zmienne i procedury. Programowanie obiektowe 36

41 Programowanie obiektowe Podejście obiektowe jest próba opisu skomplikowanych systemów za pomoca abstrakcji. Tworzymy obiekty, z którymi się komunikujemy (i które moga się komunikować między soba), które realizuja zadania dzięki wewnętrznym metodom. Problem dzielimy na pewne zadania, które przypisujemy obiektom i w pewnym sensie nie interesuje nas jak dany obiekt rozwiaże zadanie, o ile robi to zgodnie z oczekiwaniami. Niepotrzebne informacje sa ukryte wewnatrz obiektu. Każdy obiekt należy do pewnej klasy. Każdy obiekt ma swoje zmienne i procedury. Obiekty można ponownie używać w innych programach. Programowanie obiektowe 36

42 Programowanie obiektowe Podejście obiektowe jest próba opisu skomplikowanych systemów za pomoca abstrakcji. Tworzymy obiekty, z którymi się komunikujemy (i które moga się komunikować między soba), które realizuja zadania dzięki wewnętrznym metodom. Problem dzielimy na pewne zadania, które przypisujemy obiektom i w pewnym sensie nie interesuje nas jak dany obiekt rozwiaże zadanie, o ile robi to zgodnie z oczekiwaniami. Niepotrzebne informacje sa ukryte wewnatrz obiektu. Każdy obiekt należy do pewnej klasy. Każdy obiekt ma swoje zmienne i procedury. Obiekty można ponownie używać w innych programach. Wewnętrzna strukturę obiektów można modyfikować, uzupełniać i poprawiać, o ile nie wpływa to na widziane z zewnatrz własności. Programowanie obiektowe 36

43 Programowanie obiektowe Podejście obiektowe jest próba opisu skomplikowanych systemów za pomoca abstrakcji. Tworzymy obiekty, z którymi się komunikujemy (i które moga się komunikować między soba), które realizuja zadania dzięki wewnętrznym metodom. Problem dzielimy na pewne zadania, które przypisujemy obiektom i w pewnym sensie nie interesuje nas jak dany obiekt rozwiaże zadanie, o ile robi to zgodnie z oczekiwaniami. Niepotrzebne informacje sa ukryte wewnatrz obiektu. Każdy obiekt należy do pewnej klasy. Każdy obiekt ma swoje zmienne i procedury. Obiekty można ponownie używać w innych programach. Wewnętrzna strukturę obiektów można modyfikować, uzupełniać i poprawiać, o ile nie wpływa to na widziane z zewnatrz własności. Obiekty moga dziedziczyć (łaczyć się hierachicznie) po bardziej ogólnych klasach (np. samochód, czy rower jest bardziej szczegółowa realizacja klasy pojazd). Programowanie obiektowe 36

44 Programowanie obiektowe Podejście obiektowe jest próba opisu skomplikowanych systemów za pomoca abstrakcji. Tworzymy obiekty, z którymi się komunikujemy (i które moga się komunikować między soba), które realizuja zadania dzięki wewnętrznym metodom. Problem dzielimy na pewne zadania, które przypisujemy obiektom i w pewnym sensie nie interesuje nas jak dany obiekt rozwiaże zadanie, o ile robi to zgodnie z oczekiwaniami. Niepotrzebne informacje sa ukryte wewnatrz obiektu. Każdy obiekt należy do pewnej klasy. Każdy obiekt ma swoje zmienne i procedury. Obiekty można ponownie używać w innych programach. Wewnętrzna strukturę obiektów można modyfikować, uzupełniać i poprawiać, o ile nie wpływa to na widziane z zewnatrz własności. Obiekty moga dziedziczyć (łaczyć się hierachicznie) po bardziej ogólnych klasach (np. samochód, czy rower jest bardziej szczegółowa realizacja klasy pojazd). Obiekty moga zawierać inne obiekty (np. samochód zawiera koła, czujnik prędkości itd.). Programowanie obiektowe 36

45 Programowanie obiektowe Podejście obiektowe jest próba opisu skomplikowanych systemów za pomoca abstrakcji. Tworzymy obiekty, z którymi się komunikujemy (i które moga się komunikować między soba), które realizuja zadania dzięki wewnętrznym metodom. Problem dzielimy na pewne zadania, które przypisujemy obiektom i w pewnym sensie nie interesuje nas jak dany obiekt rozwiaże zadanie, o ile robi to zgodnie z oczekiwaniami. Niepotrzebne informacje sa ukryte wewnatrz obiektu. Każdy obiekt należy do pewnej klasy. Każdy obiekt ma swoje zmienne i procedury. Obiekty można ponownie używać w innych programach. Wewnętrzna strukturę obiektów można modyfikować, uzupełniać i poprawiać, o ile nie wpływa to na widziane z zewnatrz własności. Obiekty moga dziedziczyć (łaczyć się hierachicznie) po bardziej ogólnych klasach (np. samochód, czy rower jest bardziej szczegółowa realizacja klasy pojazd). Obiekty moga zawierać inne obiekty (np. samochód zawiera koła, czujnik prędkości itd.). W Pythonie wszyscy członkowie klasy sa publiczni, a wszystkie funkcje sa wirtualne (według terminologii C++). Programowanie obiektowe 36

46 Klasy import math class Point: def init (self, x, y): self.x = x self.y = y def distance(self, point): return math.sqrt((self.x - point.x)**2 + (self.y - point.y)**2) class Circle: def init (self, x, y, r): self.center = Point(x, y) self.r = r def distance_to_perimeter(self, point): return math.sqrt((self.center.x - point.x)**2 + (self.center.y - point.y)**2) - self.r p1 = Point(0, 0) p2 = Point(1, 2) c1 = Circle(1, 1, 1) print(p1.distance(p2)) print(c1.distance_to_perimeter(p2)) print(p1.distance(c1.center)) Programowanie obiektowe 37

47 Wyjatki - jeszcze raz Nowe wyjatki można tworzyć korzystajac z mechanizmu dziedziczenia. Wszystkie wyjatki dziedzicza po bazowej klasie Exception. class NuclearError(Exception): def init (self, msg = ): self.msg = msg def str (self): return self.msg try: if temp > temp_max: raise NuclearError( Max temp reached ) except NuclearError as err: print(err) Programowanie obiektowe 38

48 Krótki przeglad bibloteki standardowej (1) argparse - interfejs linii poleceń (parametry) datetime - operacje zwiazane z czasem i kalendarzem dbm - interfejs baz danych DBM distutils - narzędzia do instalowania i tworzenia pakietów Pythona doctest - testowanie dokumentacji html http math - funkcje matematyczne multiprocessing - przetwarzanie wielowatkowe os - interakcje z systemem operacyjnym Biblioteka standardowa 39

49 Krótki przeglad bibloteki standardowej (2) random - generatory liczb losowych (płaski, Gauss) re - wyrażenia regularne smtpd - serwer SMTP smtplib - klient SMTP socketserver - operacje sieciowe niskiego poziomu ssl - OpenSSL sqlite3 - interfejs bazy danych SQLite timeit - pomiary wydajności programu tkinter - Tk GUI unittest - testowanie programu xml zipfile Biblioteka standardowa 40

50 Inne przydatne biblioteki numpy - numerical Python matplotlib QtPy scipy - scientific Python lmfit Ciekawostki SymPy - obliczenia symboliczne Biopython PyChem - astropy - Biblioteka standardowa 41

51 Podsumowanie 1 Dlaczego Python? 2 Podstawy Pythona 3 Podstawowe struktury danych 4 Skrypty 5 Instrukcje kontrolne 6 Struktury danych 7 Funkcje 8 Dokumentacja 9 Moduły i pakiety 10 Operacje I/O 11 Wyjatki 12 Programowanie obiektowe 13 Biblioteka standardowa Podsumowanie 42

Kurs rozszerzony języka Python

Kurs rozszerzony języka Python Wykład 1. 6 października 2017 Plan wykładu 1 2 3 4 Plan wykładu 1 2 3 4 Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/ marcinm/dyd/python Materiały

Bardziej szczegółowo

Kurs rozszerzony języka Python

Kurs rozszerzony języka Python Wykład 2. 13 października 2017 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Deklaracja klasy Klasy i obiekty Przykłady class Figura: Pierwsza

Bardziej szczegółowo

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

Język Python. Język Python 1/35 Język Python Język Python 1/35 Język Python 2/35 Wstęp Uruchamianie interpretera python Skrypty wykonywalne #!/usr/bin/python #!/usr/bin/env python lub #!/usr/bin/python3 #!/usr/bin/env python3 chmod +x

Bardziej szczegółowo

Wykresy i interfejsy użytkownika

Wykresy i interfejsy użytkownika Wrocław, 07.11.2017 Wstęp do informatyki i programowania: Wykresy i interfejsy użytkownika Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Instrukcje sterujące Biblioteka

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 1. 4 października 2013 Plan wykładu 1 2 3 4 Typy proste Kolekcje Instrukcje w języku (przypomnienie) Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/

Bardziej szczegółowo

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

Wstęp do Pythona. Janusz Szwabiński. Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36 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

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 4. 23 października 2015 Plan wykładu 1 2 Pliki tekstowe Trwałość obiektów CSV Strumienie Plan wykładu 1 2 Pliki tekstowe Trwałość obiektów CSV Strumienie Protokół iteracyjny Producent Umiem dostarczać

Bardziej szczegółowo

Kurs rozszerzony języka Python

Kurs rozszerzony języka Python Wykład 3. 20 października 2017 Plan wykładu 1 2 Rodzaje kolekcji Przetwarzanie kolekcji 3 4 5 i funkcje Efektywność list Koniec Plan wykładu 1 2 Rodzaje kolekcji Przetwarzanie kolekcji 3 4 5 i funkcje

Bardziej szczegółowo

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

Python. Skąd taka nazwa? Kurs systemu UNIX 1 Python Skąd taka nazwa? Kurs systemu UNIX 1 Cechy języka marketing Obiektowy (dużo prostszy od C++) Darmowy Nie tylko Unix (choć tam najpopularniejszy) Wiele bibliotek (np. Tkinter, czyli interfejs do

Bardziej szczegółowo

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

Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7 Spis treści 1 Funkcje 1.1 Zadanie 1 1.2 Zadanie 2 1.3 Zadanie 3 1.4 Zadanie 4 1.5 Zadanie 5 1.6 Zadanie 6 1.7 Zadanie 7 Funkcje Przy programowaniu często zdarza się, że pewne czynności chcemy wykonywać

Bardziej szczegółowo

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

Język Python (2) Język Python (2) 1/36 Język Python (2) Język Python (2) 1/36 Język Python (2) 2/36 Podstawy funkcji Pojęcia podstawowe Instrukcja def tworzy obiekt funkcji i przypisuje go do nazwy Instrukcja return przekazuje obiekt wynikowy

Bardziej szczegółowo

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający

Bardziej szczegółowo

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33 Programowanie w C++ Wykład 8 Katarzyna Grzelak 15 kwietnia 2019 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe

Bardziej szczegółowo

Środowisko programisty

Środowisko programisty Środowisko programisty 1/34 Środowisko programisty Język Python cz. 1 dr inż. Grzegorz Michalski 24 marca 2014 Środowisko programisty 2/34 Wstęp Uruchamianie interpretera python Wykonywalne skrypty #!/usr/bin/python

Bardziej szczegółowo

Wprowadzenie do Python

Wprowadzenie do Python Wprowadzenie do Python Marcin Orchel 1 Środowisko Python Zalecane korzystanie z dystrybucji Anaconda. W systemie linux może być już dostępny Python. Sprawdzenie wersji Pythona, python -V. Uruchomienie

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 2 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 10 października 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

Ćwiczenie 5. Python 3: Programowanie obiektowe i dziedziczenie

Ćwiczenie 5. Python 3: Programowanie obiektowe i dziedziczenie Wizualizacja danych Ćwiczenie 5 Python 3: Programowanie obiektowe i dziedziczenie Dziedziczenie Mając klasę bazową możemy utworzyć klasę pochodną, która będzie dziedziczyć po klasie bazowej czyli będzie

Bardziej szczegółowo

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

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30 Programowanie w C++ Wykład 9 Katarzyna Grzelak 14 maja 2018 K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe plus

Bardziej szczegółowo

Python. Wprowadzenie. Jolanta Bachan

Python. Wprowadzenie. Jolanta Bachan Python Wprowadzenie Jolanta Bachan Zainstaluj i przetestuj Pythona https://www.python.org/downloads/ print 'Hello world!' operatory numeryczne: + - * / // % ** operatory porównania: ==!= > < >=

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 6 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 21 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

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

Kurs języka Python. Wykład 11. Marcin Młotkowski. 4 stycznia Kontrola poprawności podczas biegu programu. 2 Testowanie oprogramowania Wykład 11. 4 stycznia 2010 1 Kontrola poprawności podczas biegu programu 2 3 4 Asercje Asercja to formuła logiczna; Asercji używa się do kontrolowania czy np. wartość zmiennej ma odpowiedni typ lub mieści

Bardziej szczegółowo

Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie

Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie Operacje na plikach Otwarcie i zamknięcie pliku: fh = open('plik', 'r') Atrybuty: 'r' odczyt 'w' zapis 'a' dopisanie 'r+'

Bardziej szczegółowo

Listy, krotki, słowniki, funkcje

Listy, krotki, słowniki, funkcje Listy, krotki, słowniki, funkcje Listy Lista jest najbardziej elastycznym typem obiektu uporządkowanej kolekcji. Może zawierać różne typy danych - liczby, łańcuchy znaków, a nawet inne listy. Tworzy się

Bardziej szczegółowo

Języki i metody programowania

Języki i metody programowania Języki i metody programowania Wykład 4 dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie hab. Andrzeja Zbrzezngo Podstawy języka Python

Bardziej szczegółowo

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.

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. 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. Pliki z rozwiązaniami projektu (wszystkie polecenia

Bardziej szczegółowo

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

Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring Python dla początkujących Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring Wstęp Stworzony w latach 90 przez Guido van Rossum Nazwa pochodzi od

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 9 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 12 grudnia 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

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

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy

Bardziej szczegółowo

Przegląd języka Python. Łukasz Anwajler

Przegląd języka Python. Łukasz Anwajler Przegląd języka Python Łukasz Anwajler lukasz.anwajler@pjwstk.edu.pl Nie wierzcie mi na słowo Zaraz zobaczymy: czym jest Python dlaczego warto go używać jakie ma zastosowania gdzie z niego korzystają jakzacząć

Bardziej szczegółowo

rozdział 4: ZMIENNE I INSTRUKCJE

rozdział 4: ZMIENNE I INSTRUKCJE rozdział 4: ZMIENNE I INSTRUKCJE ostatnia modyfikacja: 04.12.18 definicja: zmienna to nazwany kontener służący do przechowywania danych na razie skupimy się na zmiennych przechowujących dane liczbowe i

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW http://metodycy.torun.pl/ m.informatyka@metodycy.torun.pl 1. Wprowadzenie do Pythona podstawowe informacje Python to język programowania wysokiego poziomu,

Bardziej szczegółowo

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

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski Podstawy Pythona Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski Słownik jest typem mutowalnym. Każdy element to para: klucz wartość. W celu stworzenia słownika pary klucz wartość umieszczamy

Bardziej szczegółowo

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31 Programowanie w C++ Wykład 8 Katarzyna Grzelak 7 maja 2018 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31 STL - powtórzenie STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki:

Bardziej szczegółowo

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

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. PYTHON Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. Aby program napisany w danym języku mógł być wykonany, niezbędne

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy

Bardziej szczegółowo

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

Plan. krótkie opisy modułów. 1 Uwagi na temat wydajności CPython a. 2 Podstawowe techniki poprawiające wydajność obliczeniową Plan 1 Uwagi na temat wydajności CPython a 2 Podstawowe techniki poprawiające wydajność obliczeniową 3 Podstawowe techniki poprawiające zużycie pamięci krótkie opisy modułów 1 array - jak oszczędzić na

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Wykład 4 Piotr Błaszyński Wydział Inmatyki Zachodniopomorskiego Uniwersytetu Technologicznego 16 lutego 2018 i zawieranie się, gromadzenie elementów nowa klasa powstaje przez użycie obiektów klas już istniejących,

Bardziej szczegółowo

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

Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright Spis treści Programista samouk : profesjonalny przewodnik do samodzielnej nauki kodowania / Cory Althoff. Gliwice, copyright 2018 Spis treści Część I. Wprowadzenie do programowania 13 Rozdział 1. Wprowadzenie 15 Struktura

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Koło Studentów Informatyki Uniwersytetu Wrocławskiego

Koło Studentów Informatyki Uniwersytetu Wrocławskiego Koło Studentów Informatyki Uniwersytetu Wrocławskiego Python programming is fun again! Piotr Wasilewski wasilewski.piotrek (at) gmail.com Akademickie Stowarzyszenie Informatyczne Plan wykładu Wstęp Język

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2013 1 / 34 Przypomnienie Programowanie imperatywne Program

Bardziej szczegółowo

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

Ćwiczenie 3. Python 3: Python 3: Funkcje, moduły i operacje na plikach Wizualizacja danych Ćwiczenie 3 Python 3: Python 3: Funkcje, moduły i operacje na plikach Python Comprehension Jest to mechanizm służący do generowania kolekcji (lista, słownik, zbiór) na podstawie jednowierszowej

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

Wstęp do informatyki. Python 1

Wstęp do informatyki. Python 1 Wstęp do informatyki Python 1 Python - wprowadzenie Wysokopoziomowy język programowania obiektowego stworzony na początku lat dziewięćdziesiątych XXw. Cechy Pythona: - wszechstronne zastosowania (GUI,

Bardziej szczegółowo

Technologie cyfrowe semestr letni 2018/2019

Technologie cyfrowe semestr letni 2018/2019 Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 8 (15.04.2019) Kompilacja Kompilacja programu (kodu): proces tłumaczenia kodu napisanego w wybranym języku na kod maszynowy, zrozumiały

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Podstawy programowania w Pythonie

Podstawy programowania w Pythonie Podstawy programowania w Pythonie Wykład 8 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 5 grudnia 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania

Bardziej szczegółowo

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

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski Informatyka- wykład Podstawy programowania w Pythonie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 23 listopada 2015 r. JĘZYK PYTHON Język Python jest

Bardziej szczegółowo

Programowanie robota mobilnego E-puck w języku Python

Programowanie robota mobilnego E-puck w języku Python Programowanie robota mobilnego E-puck w języku Python Joanna Ratajczak Mirela Kaczmarek 1 Zasady bezpieczeństwa W trakcie pracy z robotem E-puck, rys. 1, należy zachować ostrożność. Pod żadnym pozorem

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Standardowa biblioteka szablonów (Standard Template

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program

Bardziej szczegółowo

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for

Bardziej szczegółowo

Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Metody statyczne i klasowe Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) PO w. VI Jesień 2013 1 / 23 W poprzednich odcinkach... Klasy kategorie obiektów Przynależność

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

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

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Języki i metody programowania

Języki i metody programowania Języki i metody programowania Wykład 3 dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie hab. Andrzeja Zbrzezngo Wartości boolowskie

Bardziej szczegółowo

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Bash - wprowadzenie. Bash - wprowadzenie 1/39 Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:

Bardziej szczegółowo

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania weryfikacyjne:

Bardziej szczegółowo

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1] JAVA wprowadzenie do programowania (3/3) [1] Czym jest aplikacja Java Web Start? Aplikacje JAWS są formą pośrednią pomiędzy apletami a aplikacjami Javy. Nie wymagają do pracy przeglądarki WWW, jednak mogą

Bardziej szczegółowo

Język C++ wykład VIII

Język C++ wykład VIII Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,

Bardziej szczegółowo

Python wstęp. Michał Bereta www.michalbereta.pl

Python wstęp. Michał Bereta www.michalbereta.pl Python wstęp Michał Bereta www.michalbereta.pl Wprowadzenie... 1 Źródła wiedzy... 1 Uruchomienie interpretera Pythona... 2 Python jako kalkulator użycie interaktyne... 2 Uruchamianie skryptów z plików...

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

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

Python wstęp do programowania dla użytkowników WCSS Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Wprowadzenie CHARAKTERYSTYKA JĘZYKA Filozofia języka

Bardziej szczegółowo

Podstawy. Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS Informatyka Stosowana

Podstawy. Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS Informatyka Stosowana Podstawy 1 Plan prezentacji Garść informacji Komentarze Stringi Wbudowane typy liczbowe Konstrukcja print Pobieranie danych Konstrukcja if Konstrukcja if else Konstrukcja if elif else Pętla while Pętla

Bardziej szczegółowo

Programowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40

Programowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40 Programowanie w C++ Wykład 6 Katarzyna Grzelak kwiecień 2019 K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40 STL - powtórzenie STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki:

Bardziej szczegółowo

System operacyjny Linux

System operacyjny Linux Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 7 Język awk Wprowadzenie Schemat programu Konstrukcja wzorców Konstrukcja wyrażeń regularnych Struktury kontrolne Predefiniowane

Bardziej szczegółowo

Operacje wejścia/wyjścia (odsłona druga) - pliki

Operacje wejścia/wyjścia (odsłona druga) - pliki Operacje wejścia/wyjścia (odsłona druga) - pliki Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały

Bardziej szczegółowo

Programowanie w Sieci Internet. Python: Operacje z plikami oraz obsługa wyjątków

Programowanie w Sieci Internet. Python: Operacje z plikami oraz obsługa wyjątków Programowanie w Sieci Internet Python: Operacje z plikami oraz obsługa wyjątków Kraków, 5 grudnia 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Otwieranie plików Otwieranie plików jest realizowane

Bardziej szczegółowo

Podstawy bioinformatyki 2017/18

Podstawy bioinformatyki 2017/18 1 Pętla while JEZYK PROGRAMOWANIA PYTHON: PETLE ITERUJACE, KORZYSTANIE Z PLIKÓW E. Dyguda-Kazimierowicz Instrukcja while, wraz z omówioną poniżej instrukcją for, należą do pętli iterujacych pozwalających

Bardziej szczegółowo

System operacyjny Linux

System operacyjny Linux Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 6 Język bash Pierwszy skrypt Rozwinięcia parametryczne Bloki instrukcji Dwa przydatne polecenia Tablice Sprawdzanie warunków Instrukcje

Bardziej szczegółowo

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

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje

Bardziej szczegółowo

Wstęp do Informatyki dla bioinformatyków

Wstęp do Informatyki dla bioinformatyków Wstęp do Informatyki dla bioinformatyków Wykład 12 - Programowanie w BASHu Trochę bardziej zaawansowane Bartek Wilczyński 25.1.2016 Organizacyjne Bardzo proszę o wypełnienie ankiet w USOS Szczególnie zależy

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Wyjątki (exceptions)

Wyjątki (exceptions) Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.

Bardziej szczegółowo

KOTLIN. Język programowania dla Androida

KOTLIN. Język programowania dla Androida KOTLIN Język programowania dla Androida Historia Kotlin został opracowany przez firmę JetBrains Prace rozpoczęto w 2011 r., od 2012 r. dostępny na licencji Apache 2. Nazwa pochodzi od wyspy koło Petersburga

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Style programowania - krótki przeglad

Style programowania - krótki przeglad Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce.

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce. Przygotować program tworzący tablicę dwuwymiarową zawierającą zestawy 10 2, 10 4, 10 6 liczb losowych zmiennoprzecinkowych. Korzystając z funkcji bibliotecznych uporządkować zawartość każdego (a) wiersza

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Przestrzenie nazw Standardowa biblioteka szablonów

Bardziej szczegółowo

Technologie cyfrowe semestr letni 2018/2019

Technologie cyfrowe semestr letni 2018/2019 Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 7 (08.04.2019) Wikipedia Programowanie komputerów proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów

Bardziej szczegółowo

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

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43 Programowanie w C++ Wykład 6 Katarzyna Grzelak 1 kwietnia 2019 K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły

Bardziej szczegółowo

Podstawy bioinformatyki 2017/18

Podstawy bioinformatyki 2017/18 JEZYK PROGRAMOWANIA PYTHON: FUNKCJE, SŁOWNIKI E. Dyguda-Kazimierowicz 1 Definiowanie i korzystanie z funkcji Funkcje pozwalają na wyodrębnienie często powtarzanych działań, dzięki czemu struktura kodu

Bardziej szczegółowo

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof

Bardziej szczegółowo

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

Bardziej szczegółowo

1 Przygotował: mgr inż. Maciej Lasota

1 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 1 1/7 Język C Instrukcja laboratoryjna Temat: Programowanie w powłoce bash (shell scripting) 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do programowania w powłoce Skrypt powłoki

Bardziej szczegółowo

Spis treści. Dekoratory. 1 Dekoratory 1.1 Zadanie Zadanie Zadanie Zadanie 4

Spis treści. Dekoratory. 1 Dekoratory 1.1 Zadanie Zadanie Zadanie Zadanie 4 Spis treści 1 Dekoratory 1.1 Zadanie 1 1.2 Zadanie 2 1.3 Zadanie 3 1.4 Zadanie 4 Dekoratory Dekoratory w Pythonie służą do zastępowania zdefiniowanych przez nas funkcji przez funkcje (lub inne obiekty)

Bardziej szczegółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych 1 / 30 STL Standard Template Library, STL (ang. = Standardowa Biblioteka Wzorców) biblioteka C++ zawierająca szablony (wzorce), które umożliwiają wielokrotne użycie. Główne

Bardziej szczegółowo

Przetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, Spis treści

Przetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, Spis treści Przetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, 2016 Spis treści Przedmowa XI I Podstawy języka Python 1. Wprowadzenie 3 1.1. Język i środowisko

Bardziej szczegółowo

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan Podstawy programowania: Python Wprowadzenie Jolanta Bachan Informacje do kontaktu email: jolabachan@gmail.com strona internetowa: http://bachan.speechlabs.pl/ dyżury w sali 312aB środa, 9:30-10:00 czwartek,

Bardziej szczegółowo

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Delphi Laboratorium 3

Delphi Laboratorium 3 Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,

Bardziej szczegółowo