JĘZYK PYTHON NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Dr Marcin Lewandowski [ mlew@ippt.pan.pl ] Strona kursu:
|
|
- Miłosz Janik
- 8 lat temu
- Przeglądów:
Transkrypt
1 JĘZYK PYTHON NARZĘDZIE DLA KAŻDEGO NAUKOWCA Dr Marcin Lewandowski [ mlew@ippt.pan.pl ] Strona kursu: 1
2 2 PYTHON - WSTĘP
3 3 Języki kompilowane.c.o.exe Plik z kodem źródłowym KOMPILACJA Plik z kodem binarnym KONSOLIDACJA Plik wykonywalny
4 4 Interpreter Pythona.py.pyc Plik z kodem źródłowym KOMPILACJA - jednokrotna Plik z binarnym kodem pośrednim Program wykonywalny dla maszyny wirtualnej Uruchamianie na różnych systemach operacyjnych/maszynach wirtualnych
5 5 DRY KISS KISS Keep It Simple Stupid nie przesadzaj ze skomplikowanymi konstrukcjami prostota jest cnotą DRY Don t repeat yourself przemyśl architekturę całości i klocków z których ją zbudujesz pisz możliwie generyczne/uniwersalne funkcje
6 Zen of Python import this 6 >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
7 7 START Uruchomienie Python w trybie interaktywnym: > python Enthought Python Distribution -- Version: (32-bit) Python EPD (32-bit) (default, Apr , 14:30:37) [MSC v bit (Intel)] on win32 Type "credits", "demo" or "enthought" for more information. >>> Ewaluacja wyrażenia: >>> 3*(7+2) 27 Wyjście z trybu interaktywnego Pythona: CTRL-Z CTRL-D # EOF on Windows # EOF on Unix
8 8 Uruchomienie skryptu Python Windows: > python skrypt.py > skrypt.py Linux: % python skrypt.py %./skrypt.py Wymaga dodania pierwszej linii: #!/usr/bin/env python Wymaga ustawienia atrybutu executable : % chmod u+x skrypt.py
9 9 Wykonanie/Ewaluacja poleceń/skryptu Wykonanie: s = a = 2*2; print a exec(s) Ewaluacja: s = 2*2 a = eval(s) print a Wykonanie skryptu z pliku: execfile( myscript.py )
10 10 Kod Python w module mymod.py: def fun1(): print 2*2 def fun2(): print 2+2 Załadowanie modułu i wykonanie funkcji: $ python >>> import mymod >>> mymod.fun1() >>> mymod.fun2()
11 11 Błędy Błędy składni (Syntax errors) czyli błędy gramatyczne i ortograficzne języka - Python wykona program tylko gdy tego typu błędów nie ma. Błędy składni są sygnalizowane na etapie kompilacji kodu źródłowego. PYTHON nie weryfikuje statycznie zgodności typów danych dlatego niezgodności typów będą powodowały błędy działania! Błędy działania (Runtime errors) Błędy które pojawiają się na etapie wykonywania programu. Obecnie w językach programowania tego typu błędy są nazywane Wyjątkami (Exceptions) i istnieje specjalny mechanizm ich obsługi Błędy semantyczne (Semantic errors) Program działa i nie zgłasza błędów, ale wynik jego działania jest niepoprawny to błąd semantyczny. Programista miał co innego na myśli niż faktycznie wykonuje program.
12 12 Debugging Debug Prints Umieszczanie w kodzie programu funkcji print do śledzenia jego stanu wewnętrznego w newralgicznych miejscach: a = 1 if _debug_: print a:, a b = a + 1 if _debug_: print b:, b Log Exceptions/Trace Debugger
13 13 IDLE
14 IDLE debugger 14 EX1
15 15 ELEMENTY JĘZYKA PYTHON
16 16 Słowa kluczowe assert, break, continue, del, except, exec, finally, import, is, pass, print, raise, return, try, yield and, as, in, or, not for, from, with if, else, elif, while class, def, global, lambda
17 17 Zarezerwowane _ jest używany w trybie interaktywnym do pamiętania rezultatu ostatniej ewaluacji ( koncepcja twórczo rozwinięta w IPython) _* nazwy lokalne (nie widoczne przy imporcie) * używany do nazw systemowych i niech tak zostanie (np.: builtins, doc, name ) * prywatne nazwy w klasach
18 18 Raczej zarezerwowane dir( builtins ) ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BufferError', 'BytesWarning', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'None', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', ' debug ', ' doc ', ' import ', ' name ', ' package ', 'abs', 'all', 'any', 'apply', 'basestring', 'bin', 'bool', 'buffer', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'cmp', 'coerce', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'intern', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'long', 'map', 'max', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 'vars', 'xrange', 'zip ]
19 Przedefiniowanie nazw (tego bym raczej nie robił) Spróbuj: >>> len <built-in function len> >>> len('abc') 3 >>> len=2 >>> len 2 >>> len('abc') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not callable >>> del len >>> len <built-in function len> >>> 19
20 20 Identyfikatory identifier ::= (letter "_") (letter digit "_")* letter ::= lowercase uppercase lowercase ::= "a"..."z" uppercase ::= "A"..."Z" digit ::= "0"..."9" WieLkOść LiTeR Ma znaczenie!!! W wersji 3.0+ UNICODE!
21 21 Linia kodu Linia tekstu zakończona znakiem nowej linii: LF (0x0A) Unix (Linux, MacOS, Solaris, ) CR LF (0x0D 0x0A) Windows Narzędzie do zamiany CRLF na LF <PYTHON>\Tools\scripts\crlf.py Wcięcia linii definiują bloki wykonawcze!!!
22 22 Kodowanie znaków (Charset/Encoding) Ustalenie kodowania dla pliku: # -*- coding: <encoding-name> -*- Latin-1 (ISO ) domyślny 7-bit/char Latin-2 (ISO ) polskie znaki UTF-8 BOM (byte-order mark)
23 23 Komentarze Znak # rozpoczyna komentarz traktowany do końca linii print 2*2 # oblicz 2*2 Oczywiście: print Tutaj to nie jest # komentarz # Komentarze dokumentacyjne: def fun(x): Ta funkcja zwraca 2*sin(x) return 2*sin(x)
24 24 Duck typing "If it looks like a duck and quacks like a duck, it must be a duck. def calc(a, b, c): return (a+b)*c print calc(1, 2, 3) print calc([1, 2, 3], [4, 5, 6], 2) print calc('apples ', 'and oranges, ', 3) [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6] apples and oranges, apples and oranges, apples and oranges,
25 25 Typy proste None specjalny obiekt pusty: None==None is true None==False is false not(none) is true! Boolean typ logiczny: True False==False bool(42) not(42==true) (True or False) and not(false) True==1 not( ==1) == 1
26 26 Integer Stałopozycyjny 32-bitowy 32 int( 32 ) # int ze stringu 1/3 # sic! UWAGA!!! int(3.14) # trunc 0xABCD # heksadecymalnie 0o # ósemkowo 0b # binarnie
27 27 Long Stałopozycyjny dowolnie długi! 5L long(1) W Python 3.0+ usunięty/ujednolicony z Integer!
28 28 Float Zmiennopozycyjny 32-bitowy float(44) 1.0/3 complex(1+2j).real complex(1+2j).imag 4.25e3, 4.25E+3 + moduł decimal patrz dokumentacja Pythona
29 29 Zespolony Complex zespolony (2x Float): complex(1) complex(2j) complex( 3+j ) complex(1,2) 1+2j
30 30 Operatory numeryczne Operator Rezultat Uwagi x + y x - y x * y x / y x // y Suma x i y Różnica x i y Iloczyn x i y Dzielenie x przez y Dzielenie x przez y x % y Reszta z dzielenia x przez y Modulo -x zmiana znaku x +x Bez zmiany znaku x Dzielenie całkowitoliczbowe dla Int Dzielenie całkowitoliczbowe
31 31 Funkcje numeryczne Operator Rezultat Uwagi abs(x) Wartość bezwzględna/moduł x Moduł dla zespolonych int(x) long(x) float(x) complex(re,im) c.conjugate() Konwersja x do Integer Konwersja x do Long Konwersja x do Float Liczba zespolona: re + im*j Sprzężenie liczby zespolonej c divmod(x, y) Zwraca parę: (x // y, x % y) pow(x, y) x ** y x do potęgi y + moduł math patrz dokumentacja Pythona
32 32 Operatory bitowe Operator Rezultat Uwagi x y x ^ y x & y x << n x >> n x OR y x XOR y x AND y Przesunięcie x o n bitów w lewo Przesunięcie x o n bitów w prawo ~x Negacja bitów x n >= 0 n >= 0
33 33 Funkcje konwersji Integer/Long Funkcja bin(i) hex(i) int(o) long(o) int(s, base) long(s, base) oct(i) Opis Binarna reprezentacja liczby całkowitej i (string) bin(12) == 0b1100 Heksadecymalna reprezentacja liczby całkowitej i (string) hex(12) == 0xc Konwersja obiektu o do liczby Integer/Long (trunc dla o typu Float) Konwersja łańcucha s do liczby Integer/Long w zadanej bazie Ósemkowa reprezentacja liczby całkowitej i (string) oct(12) == 014
34 Łańcuchy znakowe 34 EX2 String łańcuchy znakowe: A string "Another string" "Escape \" quotation" He + llo +! *10 Cote d azure """Multiline string a newline""" T: %.02f P:%d % (20.567, 1024) + funkcje typu string patrz dokumentacja Pythona
35 35 Listy List lista: [1, 2, 3] [ word, 33, ] [ w, o, r, d ] list("word") [[ list ], [ of, lists ]] list(( a, 1, 2)) Tuple lista niemodyfikowalna: (1, 2) ( a, 1) ( memento comma!,) tuple([ a, 1]) range(3) # [0, 1, 2] range(2, 4) # [2, 3] range(0, 5, 2) # [0, 2, 4]
36 36 Funkcje dla list i łańcuchów znakowych Listy (modyfikują a!): a = [5, 6, 7, 8] a.pop() # a = [5, 6, 7] a.append(2) # a = [5, 6, 7, 2] a.sort() # a = [2, 5, 6, 7] a.reverse() # a = [7, 6, 5, 2] Łańcuchy znakowe: a = Ala ma kota a.split() # [ Ala, ma, kota ] a.upper() # ALA MA KOTA a.title() # Ala Ma Kota import string string.join(a.split(), _ ) # Ala_ma_kota + więcej funkcji patrz dokumentacja Pythona
37 37 Indeksowanie sekwencji (1) Wyrażenie Wynik seq[i:j] Elementy seq w zakresie [i j) seq[i:] Elementy seq w zakresie [i końca] seq[:j] Elementy seq w zakresie [0 j) seq[:-1] seq[:] seq[i:j:k] Elementy seq w zakresie [0 końca-1] Wszystkie elementy seq (kopia) Elementy seq w zakresie [i j) z krokiem k (co k-ty)
38 38 Indeksowanie sekwencji (2) PYTHON Wynik MATLAB a = [5, 6, 7, 8] a = [ ] a[0] 5 a(1) a[2:4] [7, 8] a(3:4) a[-1] 8 a(end) a[-2] 7 a(end-1) a[2:] [7, 8] a(3:end) a[::2] [5, 7] a(1:2:end) a[::-1] [8, 7, 6, 5] a(end:-1:1) len(a) 4 length(a) [min(a), max(a)] [5, 8] [min(a) max(a)] TAKŻE DLA: a = Python rulez [0:4] a = (5, 6, 7, 8) a = [{1: 2}, [3, 4], 5, Six ]
39 39 Słowniki Dictionary/Hash słownik: {}, dict() {1: one, 2: two, 5: five } { A :1, AB :2, ABC :1234} { NY : USA, WAW : Poland } dict(one=2, two=3) dict(zip(('one', 'two'), (2, 3))) dict([['two', 3], ['one', 2]])
40 40 Operatory/Funkcje dla kolekcji (1) Operacja s[i] = x s[i:j] = t Wynik Element i słownika s jest zamieniany na x Plaster s elementów [i j) jest zamieniany na elementy z t del s[i:j] To samo co s[i:j] = [] s[i:j:k] = t del s[i:j:k] Elementy s[i:j:k] zamieniane na elementy z t Usunięcie elementów s[i:j:k]
41 41 Operatory/Funkcje dla kolekcji (2) Operacja s.append(x) s.extend(x) s.count(x) s.index(x[, i[, j]]) s.insert(i, x) s.pop([i]) s.remove(x) s.reverse() s.sort([cmp[, key[, reverse]]]) Wynik To samo co s[len(s):len(s)] = [x] To samo co s[len(s):len(s)] = x Zwraca liczbę elementów spełniających warunek: s[i] == x Zwraca najmniejszy indeks k, taki że s[k] == x oraz i <= k < j To samo co s[i:i] = [x] To samo co x = s[i]; del s[i]; return x To samo co del s[s.index(x)] Odwraca kolejność elementów s (w miejscu) Sortuje elementy s (w miejscu)
42 42 Operatory/Funkcje dla kolekcji (3) Operacja x in coll x not in coll any(coll) all(coll) len(coll) max(coll[, key=function]) Wynik True jeśli coll zawiera x True jeśli coll zawiera x True jeśli którykolwiek element coll jest True True jeśli wszystkie elementy coll są True Liczba elementów coll Element maksymalny coll min(coll[, key=function]) Element minimalny coll
43 43 Zbiory set zbiór (nieuporządkowany) : set() set([1, 2]), set([2, 1]) set((2, 1)) set(range(0,5)) set([1, 2]) set([3, 4]) frozenset zbiór niemodyfikowalny + funkcje na zbiorach patrz dokumentacja Pythona
44 44 Jak skopiować kolekcję >>> a = [1, 2, 3] >>> b = a # kopia!? >>> a[1] = 2000 # zmiana w oryginale >>> b [1, 2000, 3] #!@%^
45 Kopia kolekcji 45 EX3 a = [1, 2, 3] b = a[:] # metoda 1 b = list(a) # metoda 2 b = []; b.extend(a) # metoda 3 b = []; # metoda 4 b = [ e for e in a ] for n in range(len(a)): # metoda 5 b.append(a[n]) + deepcopy patrz dokumentacja Pythona
46 46 range()/xrange() Pętla na sekwencji: for n in range( ): print(n) MemoryError Rozwiązanie użyj xrange() for n in xrange( ): print(n) W Python 3.0 xrange() nieistnieje, a range() zachowuje się jak xrange()!!! patrz iteratory
47 47 List comprehension (1) Tworzenie listy: all = [] for i in range(0, 100): all.append(i) j.w. w wersji jednolinijkowej: all = [ i for i in range(0, 100) ] list = [ expr for item in iterable ]
48 48 List comprehension (2) Tworzenie listy: odd = [] for i in range(0, 100): if i%2: odd.append(i) j.w. w wersji jednolinijkowej: odd = [ i for i in range(0, 100) if i%2] list = [ expr for item in iterable if cond]
49 49 Struktury kontrolne i pętle Instrukcje warunkowe If Pętle for while Inne import return yield pass assert
50 50 if if warunek1: blok1 elif warunek2: blok2 # Dodatkowe elif else: blok3
51 51 True or False False: None False Numeryczne zero: 0, 0L, 0.0, 0j Pusta sekwencja: '', (), [] Pusta słownik: {} Instancja klasy z funkcjami nonzero () lub len (), które zwracają 0 lub False Reszta True
52 52 Operatory porównań Operator Znaczenie Uwagi < Mniejszy niż <= Mniejszy lub równy > Większy niż >= Większy lub równy == Równy!= Nie równy <> is Identyczność obiektów is not Zaprzeczenie identyczności obiektów + Operatory logiczne: not, and, or
53 UWAGA na zwarcia! "short circuit" >>> 'a' == ('a' or 'b') True >>> 'b' == ('a' or 'b') False >>> 'a' == ('a' and 'b') False >>> 'b' == ('a' and 'b') True 53
54 54 For in range >>> od1do10 = range(1, 11) >>> for count in od1do10 : print count >>> od1do10 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
55 55 for-continue, for-else for n in range(2, 10, 1): if n % 2: print n, is odd break else: print Odd not found
56 56 while, while-else input_ok = False while not input_ok: s = input('enter something: ') if s == 'exit': break if len(s) < 3: print('too small') continue input_ok = True else: print Input is OK
57 BMI (Body Mass Index) 57 EX4
58 58 BMI zakresy Zakres BMI Diagnoza < 16.5 Poważna niedowaga [16.5, 18.5) Niedowaga [18.5, 25) Prawidłowa [25, 30) Nadwaga [30, 35) Otyłość klasy I [35, 40) Otyłość klasy II > 40 Otyłość klasy III
59 59 Algorytm 1. Instrukcja dla użytkownika 2. Wprowadzenie danych: wagi i wzrostu 3. Sprawdzenie poprawności zakresów danych Waga 0-150kg Wzrost 0-200cm 4. Obliczenie BMI wg. wzoru 5. Klasyfikacja BMI wg. Tabeli 6. Powrót do punktu 1
60 60 Wersja I Korzystając z: Tylko typy proste Instrukcje: pętli, warunki Operacje numeryczne Komenda print, Funkcje: raw_input(), sys.exit()
61 61 Wersja II Modyfikacja Wersji I: Użyj listy do definicji klasyfikatora BMI
62 62 Funkcje def <name>(arg1, arg2,... argn): <statements> return <value> #optional n.p.: def sayhello(who): print 'Hello, who # End of function
63 63 Funkcje przykład def printmax(a, b): if a > b: print a, 'is maximum' elif a == b: print a, 'is equal to', b else: print b, 'is maximum' >>> printmax(3, 4) 4 is maximum >>> x = 5 >>> y = 7 >>> printmax(x, y) 7 is maximum
64 64 lambda lambda arg1, arg2,... argn :expression using arguments f = lambda x, y, z: x + y + z def func(x, y, z): return x + y + z
65 65 def/lambda/return/yeld def jest wykonywalny (!) i tworzy nowy obiekt pod nazwą funkcji lambda tworzy i zwraca nowy obiekt funkcji return zwraca rezultat do kodu wywołującego yield podobnie jak return zwraca rezultat, ale zapamiętuje stan wewn. funkcji i miejsce powrotu global deklaruje zmienne w funkcji jako globalne (domyślnie są lokalne) Argumenty do funkcji są przekazywane przez przypisanie (object reference) Argumenty, wartości zwracane i zmienne nie są deklarowane Python 3.0+: nonlocal odpowiednik global dla zakresu otaczającego
66 66 Reguły zakresu (scoping) Moduł to zakres global. Zmienne zdefiniowane na poziomie modułu są dostępne z innych modułów za pomocą prefiksu nazwy modułu. Zakres global obejmuje tylko jeden plik!!! Można zaimportować wszystkie nazwy z modułu do przestrzeni globalnej modułu importując jego zawartość. Każde wywołanie funkcji tworzy nowy zakres lokalny (dla tej funkcji). Zmienne utworzone/przypisane w funkcji są lokalne, chyba, że zostały zadeklarowane jako global Wszystkie inne nazwy są wyszukiwane w zakresie: otaczającym (enclosing scope), globalnym, wbudowanym ( builtin ).
67 67 Reguła przeszukiwania LEGB
68 68 Przykłady X = 88 # global X def func(): X = 99 # local X func() print(x) # # Global scope X = 99 def func(y): # Local scope Z = X + Y # X is a global return Z func(1) # 100
69 69 Argumenty funkcji Argumenty typów niemodyfikowalnych (Immutable) efektywnie są przekazywane przez wartość (np. integer, string). Argumenty typów modyfikowalnych efektywnie są przekazywane przez referencję (np. listy, słowniki).
70 70 Składnia argumentów funkcji Składnia Strona Interpretacja func(value) Wywołanie argument normalny pozycyjny func(name=value) Wywołanie argument nazwany func(*sequence) Wywołanie przekazuje elementy sekwencji jako kolejne argumenty pozycyjne func(**dict) Wywołanie przekazuje elementy słownika (klucz/wartość) jako kolejne argumenty nazwane def func(name) Funkcja Argument normalny: dopasowanie po pozycji lub nazwie def func(name=value) Funkcja Argument domyślny, o ile nie przekazany w wywołaniu def func(*name) Funkcja Zbiera pozostałe argumenty pozycyjne w listę def func(**name) Funkcja Zbiera pozostałe argumenty nazwane w słownik
71 71 Argumenty pozycyjne/nazwane/domyślne def func(spam, eggs, toast=0, ham=0): print((spam, eggs, toast, ham)) > func(1, 2) (1, 2, 0, 0) > func(1, ham=1, eggs=0) (1, 0, 0, 1) > func(spam=1, eggs=0) (1, 0, 0, 0) > func(toast=1, eggs=2, spam=3) (3, 2, 1, 0) > func(1, 2, 3, 4) (1, 2, 3, 4)
72 72 Argumenty typu * i ** >>> def f(*args): print(args)... > f() () > f(1) (1,) > f(1, 2, 3, 4) (1, 2, 3, 4) > def f(**args): print(args)... > f() {} > f(a=1, b=2) {'a': 1, 'b': 2}
73 73 Funkcje dobra praktyka Funkcja powinna służyć do realizacji jednej dobrze określonej rzeczy i nie być zbyt rozbudowana Używaj argumentów na wejściu i return na wyjściu funkcji Zmiennych global używaj tylko w kiedy to absolutnie konieczne Nie modyfikuj argumentów przekazywanych przez referencję o ile wywołujący się tego nie spodziewa Nie modyfikuj zmiennych w innych modułach
74 74 Wyjątki try: blok-try except ErrorClass1: blok-except1 except ErrorClass2: blok-except2 except else: blok-else finally: blok-finally
75 75 Wyjątki - przykład try: a = 1/0 except: print 'except' else: print 'ok' finally: print 'finally'
76 76 Generacja wyjątku # Generacja instancji wyjątku raise <instance> # Utworzenie instancji i generacja wyjątku raise <class> # Powtórna generacja ostatniego wyjątku raise try: raise IndexError except IndexError: print 'got exception
77 77 Składnia try/except/else/finally Składnia except: except name: except name as value: except (name1, name2): except (name1, name2) as value: else: finally: Interpretacja Łapie wyjątki wszystkich typów Łapie tylko wyjątki danego typu Łapie wyjątki danego typu oraz jego instancję Łapie wyjątki danych typów Łapie wyjątki danych typów oraz ich instancję Wykonywane gdy żaden wyjątek nie został zgłoszony Wykonywane ZAWSZE na końcu bloku except
78 with/as 78 EX5 with expression [as variable]: with-block with open(r'c:\data') as file: for line in file: print(line) + Context Management Protocol patrz dokumentacja Pythona
79 79 MODUŁY
80 80 Moduły po co i jak MODUŁ = biblioteka Pythona PAKIET (Package) = zestaw modułów w drzewie katalogów Po co: Code reuse! Dzielenie kodu/przestrzeni nazw Współdzielenie serwisów/funkcji/danych Kroki ładowania modułu: 1. Znalezienie pliku modułu (ścieżka przeszukiwania) 2. Kompilacja modułu do byte-code (o ile konieczne) 3. Wykonanie modułu
81 81 import import <module1>, <module2> from <module> import <name1>, <name2> from <module> import *
82 82 sys.path Poszukiwanie pliku modułu: 1. Katalog domowy/bieżący (UWAGA na nazwy!) 2. Zmienna systemowa PYTHONPATH 3. Katalog biblioteki standardowej 4. Zawartość plików.pth Powyższe tworzy ścieżkę przeszukiwania pamiętaną w sys.path
83 83 Typy modułów import mod Plik źródłowy Python modułu: mod.py Skompilowany byte-code modułu: mod.pyc Katalog o nazwie mod dla importu pakietów Skompilowany moduł natywny biblioteka dynamiczna systemu operacyjnego (np. mod.dll/mod.pyd dla Windows, mod.so dla Linux) Moduł wbudowany w interpreter Pythona (skompilowany i statycznie zlinkowany) Plik ZIP zostaje automatycznie rozpakowany w locie Obraz modułu w pamięci dla zamrożonych programów wykonawczych
84 84 Przykład >>> sin(2.0) NameError: name 'sin' is not defined >>> import math >>> dir(math) # look what is in the math [' doc ', ' name ', ' package ', 'acos', 'acosh', 'asin', >>> math.sin(math.pi/2) 1.0 >>> from math import sin >>> sin(math.pi/2) 1.0
85 85 Ładowanie modułów c.d. Przemianowanie podczas ładowania: from math import sin as mysin Możliwość przeładowania modułu: reload(mymodule)
86 86 Przekrywanie nazw przy imporcie from M import func from N import func # ooops func() # wywoła N.func! import M, N M.func() N.func() # ładuje całe moduły # wołamy M.func() # wołamy N.func()
87 87 Nieśmiałe ładowanie try: import urllib3 as urllib # 1st try except: try: import urllib2 as urllib # 2nd try except: import urllib as urllib # urllib.urlopen( )
88 88 Dokumentacja modułów/funkcji """A module ble, ble, ble...""" def fun_add(x, y=1): """ fun_add(x,y=1) takes one or two numerical arguments and adds them together. If the second argumentn is empty it increments input by 1 """ return x + y print myfunction. doc >>> help(myfunction) Generacja dokumentacji HTML dla modułu $ pydoc -w./mymodule.py
89 89 Uruchamianie modułu jako skryptu Przydatne np. do testowania modułów Moduł uruchomiony jako skrypt if name == ' main ': print Just self testing test1()
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ółowoPython 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ółowoInformatyka w życiu matematyka
Wrocław, 3.10.2017 Wstęp do informatyki i programowania: Informatyka w życiu matematyka Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Informatyka w życiu matematyka
Bardziej szczegółowoPodstawy 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ółowoJę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ółowoJęzyk skryptowy: Laboratorium 1. Wprowadzenie do języka Python
Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python Język PYTHON Podstawowe informacje Python to język skryptowy, interpretowany - co oznacza, że piszemy skrypt, a następnie wykonujemy go za
Bardziej szczegółowoPython. 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ółowoKurs 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ółowoPisząc kod w Pythonie na pewno już nie raz coś poszło nie tak i Shell wypisał komunikat o błędzie podobny do poniższego:
Wyjątki Pisząc kod w Pythonie na pewno już nie raz coś poszło nie tak i Shell wypisał komunikat o błędzie podobny do poniższego: >>> 1/ File "", line 1, in 1/ ZeroDivisionError: integer
Bardziej szczegółowoKurs 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ółowoPodstawy 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ółowoWyjątki. try - except
Wyjątki Wyjątek jest obiektem Pythona reprezentującym błąd. Innymi słowy, jest on zdarzeniem, które pojawia się podczas wykonania programu przerywając jego normalny przebieg. Wyobraźmy sobie dłuższy fragment
Bardziej szczegółowoZaawansowany 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ółowoWstę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ółowoWstę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ółowoSpis 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ółowoJĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ ]
JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA Marcin Lewandowski [ mlew@ippt.gov.pl ] PYTHON 3 2 Int int jest obecnie odpowiednikiem dawnego long int nie ma wartości maksymalnej (sys.maxint) 2/4 == 0.5
Bardziej szczegółowoWstęp do Informatyki i Programowania (kierunek matematyka stosowana)
Wstęp do Informatyki i Programowania (kierunek matematyka stosowana) Jacek Cichoń Przemysław Kobylański Instytut Matematyki i Informatyki Politechnika Wrocławska Na podstawie: M.Summerfield.Python 3. Kompletne
Bardziej szczegółowoPrzeglą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ółowoZaawansowany 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ółowoProgramowanie 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ółowoPodstawy 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Ś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ółowoPodstawy. 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ółowoMicrosoft IT Academy kurs programowania
Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego
Bardziej szczegółowoPlan Przegląd podstawowych typów i konstrukcji języka
Plan Przegląd podstawowych typów i konstrukcji języka interpreter i witaj świecie struktura kodu, wcięcia zakresy widoczności zmiennych typy proste, int, float, konwersje podstawowe instrukcje Łukasz Ligowski,
Bardziej szczegółowoJAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak
JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard
Bardziej szczegółowoWstę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ółowoAlgorytmy i struktury danych
Algorytmy i struktury danych 4. Łódź 2018 Suma szeregu harmonicznego - Wpisz kod programu w oknie edycyjnym - Zapisz kod w pliku harmonic.py - Uruchom skrypt (In[1]: run harmonic.py) - Ten program wykorzystuje
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Programowanie funkcyjne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XIV Jesień 2013 1 / 25 Paradygmaty programowania Programowanie imperatywne Program
Bardziej szczegółowoPodstawy 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ółowoBłyskawiczny kurs języka Python od podstaw do prostej strony opartej o microframework Flask.
Błyskawiczny kurs języka Python od podstaw do prostej strony opartej o microframework Flask. Marius Rejdak mariuswol@gmail.com #inf.aei.polsl.pl @ QuakeNet 2 / 44 Agenda 1. Filozofia języka 2. REPL 3.
Bardziej szczegółoworozdział 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ółowoProgramowanie RAD Delphi
Programowanie RAD Delphi Dr Sławomir Orłowski Zespół Fizyki Medycznej, Instytut Fizyki, Uniwersytet Mikołaja Kopernika w Toruniu Pokój: 202, tel. 611-32-46, e-mial: bigman@fizyka.umk.pl Delphi zasoby Aplikacje
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Bardziej szczegółowoPodstawy bioinformatyki 2017/18
JEZYK PROGRAMOWANIA PYTHON: WPROWADZANIE DANYCH I FORMATOWANIE WYNIKÓW, WEWNETRZNA DOKUMENTACJA, PROGRAMY I MODUŁY E. Dyguda-Kazimierowicz 1 Formatowanie danych wyjściowych Do formatowania wyświetlanych
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych 3. Elementy programu i typy danych Łódź 2018 Ćwiczenie Body Mass Index - Edytuj kod programu - Zapisz go w pliku bmi.py - Uruchom skrypt >>> Enter your name: Jacek >>> Enter
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,
Bardziej szczegółowoZmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Bardziej szczegółowoAlgorytmika i Programowanie VBA 1 - podstawy
Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy
Bardziej szczegółowoBash - 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ółowoPytania dla języka Python
XIV OIJ, zawody I stopnia, tura testowa 16 września 2019 1 stycznia 2020 Poniżej znajdują się pytania testowe z zawodów I stopnia XIV Olimpiady Informatycznej Juniorów () na teście wiedzy (do rozwiązania
Bardziej szczegółowoKoł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ółowoMATERIAŁY DO ZAJĘĆ II
MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych
Bardziej szczegółowoSpis 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ółowoHackowanie zamrożonych binariów
Hackowanie zamrożonych binariów Piotr Tynecki @ptynecki PyCon PL 2015 Agenda 0x0. Wprowadzenie 0x1. Tradycyjny model wykonaczy kodu CPythona 0x2. Kod bajtowy, charakterystyka plików.pyc /.pyo 0x3. Zamrożone
Bardziej szczegółowoJę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ółowoUwagi 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ółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Bardziej szczegółowoNależy ściągnąć oprogramowanie Apache na platformę
Programowanie Internetowe Język PHP - wprowadzenie 1. Instalacja Oracle+Apache+PHP Instalacja Apache, PHP, Oracle Programy i ich lokalizacja Oracle Database 10g Express Edition10.2 http://www.oracle.com/technology/products/database/
Bardziej szczegółowoProgramowanie i projektowanie obiektowe
Programowanie i projektowanie obiektowe Metaprogramowanie (w Pythonie) Paweł Daniluk Wydział Fizyki Jesień 2016 P. Daniluk(Wydział Fizyki) PO w. XI Jesień 2016 1 / 32 Wstęp ideologiczny Języki programowania
Bardziej szczegółowoKOTLIN. 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ółowoInformatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wyjątki, metody specjalne, generatory Paweł Daniluk Wydział Fizyki Jesień 2015 P. Daniluk (Wydział Fizyki) PO w. VII Jesień 2015 1 / 23 Wyjątki It s easier to ask forgiveness than
Bardziej szczegółowoPodstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.
Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using
Bardziej szczegółowoSkrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać
MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty
Bardziej szczegółowoKurs 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ółowoTechnologie Informacyjne Mechatronika 2012/2013 Błędy obliczeń. Python.
Technologie Informacyjne Mechatronika 2012/2013 Błędy obliczeń. Python. 1. Cel laboratorium Celem laboratorium jest znalezienie przez studentów przykładów błędów popełnianych przez komputery podczas prostych
Bardziej szczegółowoProgramowanie 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ółowoKurs 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ółowoPodstawy programowania. Python wykład 6
Podstawy programowania Python wykład 6 Funkcja wbudowana chr() Wywołanie funkcji chr() z argumentem m zwraca łańcuch znaków reprezentujący znak, którego punktem kodowym w Unicode jest liczba całkowita
Bardziej szczegółowo2. Składnia Pythona. Robert Janczewski. Gdańsk, 2014
Gdańsk, 2014 Czym jest Python? Python a C Struktura programu Zmienne i zarządzanie pamięcią Przykład Python to język programowania, który został zaprojektowany tak, by można było szybko tworzyć czytelne
Bardziej szczegółowoPython. 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ółowoWstę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ółowoJęzyk programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści
Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop. 2016 Spis treści Przedmowa 1 Stosowana notacja 1 1. Wprowadzenie 3 1.1. Konsola interaktywna języka Scala 3 1.2. Zmienne 5 1.3. Wartości
Bardziej szczegółowoJava. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Bardziej szczegółowoProgramowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Bardziej szczegółowoLaboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Bardziej szczegółowoWstęp do programowania. Różne różności
Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste
Bardziej szczegółowoPython konsola tekstowa
Python konsola tekstowa Krzysztof Katarzyński Centrum Astronomii UMK Mój maż, jak większość ludzi w jego wieku, ma 50 lat. Latajacy Cyrk Monty Pythona Tryb tak zwanej konsoli tekstowej W systemach MS Windows
Bardziej szczegółowoPascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:
Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoKurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017
Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania
Bardziej szczegółowoJę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ółowoLibreOffice Calc VBA
LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć
Bardziej szczegółowoElementy języka Scheme
Elementy języka Scheme Historia języka Lisp Historia języka Lisp Wyrażenia i ewaluacja wyrażeń Identyfikatory i wyrażenie let Wyrażenia lambda Definicje globalne Wyrażenia warunkowe Przypisanie Kontynuacje
Bardziej szczegółowoPodstawy programowania w języku C
Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu
Bardziej szczegółowoMETODY 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ółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoJęzyki skryptowe w programie Plans
Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie 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ółowoMyś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ółowoSerwer WWW Apache. http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, 2.2.25, 2.0.65 zakończony projekt
Serwer WWW Apache http://httpd.apache.org/ Plik konfiguracyjny httpd.conf Definiujemy m.in.: Katalog który ma być serwowany Moduły, które mają zostać uruchomione na serwerze m.in. PHP, mod_rewrite Wirtualne
Bardziej szczegółowoJę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ółowoPodstawy programowania w Pythonie
Podstawy programowania w Pythonie Wykład 5 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 7 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania
Bardziej szczegółowoPodstawy 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ółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoSwift (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ółowoProgramowanie Obiektowe i C++
Programowanie Obiektowe i C++ Smalltalk Marcin Benke 15 stycznia 2007 Marcin Benke (MIMUW) Programowanie Obiektowe i C++ 15 stycznia 2007 1 / 26 Marcin Benke (MIMUW) Programowanie Obiektowe i C++ 15 stycznia
Bardziej szczegółowoDelphi 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ółowoPodstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
Bardziej szczegółowoInstrukcje. Operatory. Operatory. Instrukcje sterujące. wyrażenie1 && wyrażenie2 ;
Instrukcje wyrażenie1 if wyrażenie2 ; wyrażenie1 until wyrażenie2 ; wyrażenie1 wyrażenie2 ; wyrażenie1 wyrażenie2 ; wyrażenie1? wyrażenie2 : wyrażenie3 ; if (wyrażenie) blok [ [ elsif (wyrażenie) blok...
Bardziej szczegółowoPodstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
Bardziej szczegółowoJęzyki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.
Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym
Bardziej szczegółowoJAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.
IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript
Bardziej szczegółowoProgramista 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Ć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ółowoWstęp do informatyki. stęp do informatyki Polecenia (cz.2)
Wstęp do informatyki stęp do informatyki Polecenia (cz.2) Lista procesów top Pokaż listę procesów polecenie interaktywne Procesy Uruchamianie w tle. shell nie czeka na zakończenie procesu, można wydawać
Bardziej szczegółowo