JĘZYK PYTHON NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Dr Marcin Lewandowski [ ] Strona kursu:

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

Download "JĘZYK PYTHON NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Dr Marcin Lewandowski [ mlew@ippt.pan.pl ] Strona kursu: http://us4us.eu/wydarzenia/kursy/"

Transkrypt

1 JĘZYK PYTHON NARZĘDZIE DLA KAŻDEGO NAUKOWCA Dr Marcin Lewandowski [ ] Strona kursu: 1

2 2 OPERACJE NA STRINGACH

3 3 Bit/Byte/Word Bit 0/1 Byte 8 bitów Word 2 bajty 16 bitów Long Word 4 bajty 32 bitów Long Long Word 8 bajty 64 bitów

4 4 ASCII American Standard Code for Information Interchange ustandaryzowany w 1963 Pierwsze zastosowanie: BELL teleprinter (TTY - TeleTYpe) Kodowanie znaków alfanumerycznych amerykańskich, kontrolnych i ew. znaków międzynarodowych (tzw. strona kodowa)

5 5 ASCII-I

6 6 ASCII-II

7 7 UNICODE Unicode jest nowoczesnym sposobem kodowania obejmującym znaki używane na całym świecie (np. polskie ogonki, alfabet chiński, hieroglify, cyrylicę i wiele innych), symbole muzyczne, techniczne, fonetyczne i inne często spotykane. Unicode przypisuje każdemu znakowi unikalny numer (kod numeryczny, ang. code point), niezależny od używanego systemu operacyjnego, programu czy języka. Ważną cechą Unicode jest fakt, że pierwsze 128 znaków odpowiada kodom ASCII (zakres 00..7F). więcej o Unicode na

8 8 UNICODE encoding UTF-8 kodowanie 8-bitowe zmiennej długości (zgodność z ASCII). UTF-16 kodowanie 16-bitowe zmiennej długości. UTF-32 kodowanie 32-bitowe stałej długości.

9 9 UNICODE escape >>> 'm' 'm' >>> '\155' 'm' >>> '\x6d' 'm >>> u'\n{latin SMALL LETTER A} 'a' >>> u'\n{latin SMALL LETTER A WITH ACUTE} 'á' >>> u"\u0041" A >>> u"\u " A

10 10 String escape sequence Raw string wyłączona interpretacja sekwencji escape!

11 11 Funkcje len(s) zwraca długość sekwencji (liczbę elementów), działa dla obiektów typu: string, tuple, list, dictionary char(n) zwraca znak odpowiadający kodowi n ASCII ord(ch) zwraca kod ASCII danego znaku ch str(s) reprezentacja obiektu dla człowieka repr(s) reprezentacja obiektu dla interpretera W Python 3.0+ znaki są stringi/kodowane w UNICODE!

12 12 str() vs repr() >>> s = 'Hello, world.' >>> str(s) 'Hello, world.' >>> repr(s) "'Hello, world. >>> str(0.1) '0.1' >>> repr(0.1) ' '

13 13 \ problem # Path on Windows >>> path = C:\\sample.txt >>> path = r C:\sample.txt >>> str(path) 'C:\\sample.txt' >>> repr(path) "'C:\\\\sample.txt >>> print path C:\sample.txt # Path on Unix/Linux >>> path = /tmp/sample.txt

14 14 Formatowanie stringów.format() format_spec ::= [fill][align][sign][#][0][width][.precision][type] fill ::= <a character other than '}'> align ::= "<" ">" "=" "^ sign ::= "+" "-" " " width ::= integer precision ::= integer type ::= "c" "d" "i" "o" "u" "e" "E" "f" "F" "g" "G" "x" "X" "r" "s" "%"

15 15 Formatowanie

16 16 Formatowanie: opcje dosuwania

17 17 Formatowanie: opcje znaku '#' dla całkowitoliczbowych jeśli występuję poprzedza liczbę '0b', '0o', or '0x w zależności od podstawy: binarnej, ósemkowej, hexadecymalnej

18 18 format() przykłady >>> '{0}, {1}, {2}'.format('a', 'b', 'c') 'a, b, c' >>> '{}, {}, {}'.format('a', 'b', 'c') # 2.7+ only 'a, b, c' >>> '{2}, {1}, {0}'.format('a', 'b', 'c') 'c, b, a' >>> '{2}, {1}, {0}'.format(*'abc') # unpacking argument sequence 'c, b, a'

19 19 format() przykłady >>> '{:<30}'.format('left aligned') 'left aligned ' >>> '{:>30}'.format('right aligned') ' right aligned' >>> '{:^30}'.format('centered') ' centered ' # use '*' as a fill char >>> '{:*^30}'.format('centered') '***********centered***********'

20 20 Formatowanie % ze słownika >>> print WITAMY %(imie)s %(nazwisko)s.' % \ { imie : Marcin", nazwisko": Lewandowski } WITAMY Marcin Lewandowski

21 21 Funkcje stringowe >>> dir( Hello Python! ) [' add ', ' class ', ' contains ', ' delattr ', ' doc ', ' eq ', ' format ', ' ge ', ' getattribute ', ' getitem ', ' getnewargs ', ' getslice ', ' gt ', ' hash ', ' init ', ' le ', ' len ', ' lt ', ' mod ', ' mul ', ' ne ', ' new ', ' reduce ', ' reduce_ex ', ' repr, ' rmod ', ' rmul ', ' setattr ', ' sizeof ', ' str ', ' subclasshook ', '_formatter_field_name_split', '_formatter_parser', 'capitalize, 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper, 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', strip', 'swapcase', 'title', 'translate', 'upper', 'zfill ] *** Przegląd funkcji stringowych w dokumentacji ***

22 22 Użycie help() >>> help( Hello.replace) Help on built-in function replace: replace(...) S.replace (old, new[, count]) -> str Return a copy of S with all occurrences of substring old replaced by new. If the optional argument count is given, only the first count occurrences are replaced.

23 23 Operacja na stringach I Operacja S = '' S = str() S = "spam's" S = 'spam\'s' S = '\thello\nworld \x21' S = """...ble, ble, ble""" S = r'\temp\spam' Interpretacja Pusty string Apostrof w stringu Sekwencje escape String wieloliniowy String raw S = u'spam' String Unicode tylko Python 2.6 S = b'spam' String bajtowy tylko Python 3.0+ S1 + S2 S * 3 S[i] S[i:j] Konkatenacja (łączenie) stringów Powielanie stringów Indeksowanie, przecinanie (slicing)

24 24 Operacja na stringach II Operacja len(s) "Type: %s has value %d" % (type, val) Interpretacja Długość stringu Formatowanie stringu "a {0} parrot".format(kind) Funkcja formatowania S.find( spam') S.rstrip() S.replace('spam', 'ham') S.split(',') '+'.join(strlist) S.lower(), S.upper() S.startswith('spam'), S.endswith('spam') S.isdigit() S.encode('latin-1') Funkcja szukania w stringu Funkcja usuwania spacji Funkcja zamiany Funkcja dzielenia stringu na separatorze Funkcja łączenia listy w string z separatorem Zamiana znaków na małe/wielkie litery Test na zawartość początku/końca stringu Test czy string zawiera tylko cyfry Kodowanie w danej stronie kodowej

25 25 Konwersja/kodowanie ASCII Wyświetlanie całej tablicy znaków ASCII w formacie: kod hex, kod decymalny, znak ASCII Kodowanie/Dekodowanie stringu ASCII reprezentacji heksadecymalnej i binarnej

26 26 Encoding "Marcin".encode('hex') " ". decode('hex') encodings/cp1252.py *** Codecs w dokumentacji ***

27 27 Encoding I >>> import sys >>> sys.version '2.6 (r26:66721, Oct , 11:35:03) [MSC v bit (Intel)]' >>> S = 'A\xC4B\xE8C' # String of 8-bit bytes >>> print S # Some are non-ascii AÄBčC >>> S.decode('latin-1') # Decode byte to latin-1 Unicode u'a\xc4b\xe8c' >>> S.decode('utf-8') # Not formatted as utf-8 UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1-2: invalid data >>> S.decode('ascii') # Outside ASCII range UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 1: ordinal not in range(128)

28 28 WYRAŻENIA REGULARNE (REGEX)

29 29 Hmmm "Some people, when confronted with a problem, think: 'I know, I'll use regular expressions.' Now they have two problems. Jamie Zawinski

30 30 Regex >>> import re >>> s = His name is Marcin Lewandowski and her is Merlin Monroe.' >>> print re.findall( ([A-Z]\w+)\s+([A-Z]\w+)', s) [('Marcin', 'Lewandowski'), ('Merlin', 'Monroe')]

31 31 Regex funkcje I re.compile(pattern[, flags]) kompilacja wyrażenie regularnego do obiektu, który będzie następnie używany do wywołania metod: match() i search(); flags opcjonalne, specyfikowane razem przy pomocy operatora OR ( ). prog = re.compile(pattern) result = prog.match(string)

32 32 Regex funkcje II RegexObj.match(string[, pos[, endpos]]) dopasowywanie obiektu regex do stringu. Jeśli zero lub więcej znaków na początku stringu pasuje do wzorca zwraca obiekt MatchObj, lub None w przeciwnym wypadku RegexObj.search(string[, pos[, endpos]]) przeszukuje string w celu dopasowania wzorca. Zwraca obiekt MatchObj w przypadku znalezienia dopasowania lub None w przeciwnym wypadku *** moduł re w dokumentacji ***

33 33 Regex flagi/opcje re.i, re.ignorecase włącza opcję case-insensitive re.l, re.locale włącza interpretację znaków \w, \W, \b, \B, \s, \S z wykorzystaniem aktualnego locale. re.m, re.multiline kiedy włączone znak '^' dopasowuje na początku stringu oraz każdej nowej linii tekstu; podobnie znak '$' na końcu stringu oraz na końcu każdej linii tekstu re.s, re.dotall włącza dopasowanie znaku '.' jako każdego znaku włącznie ze znakiem nowej linii re.u, re.unicode włącza interpretację znaków \w, \W, \b, \B, \d, \D, \s, \S zgodnie z UNICODE re.x, re.verbose umożliwia pisanie wyrażeń regularnych w bardziej czytelnej postaci wieloliniowej oraz ze spacjami, które są ignorowane, znaki po # są traktowane jak komentarz

34 34 match vs search import re regex = re.compile( he..o') if regex.match( hello!!!'): print match!' if regex.search( Python hello!'): print found!'

35 35 Regex I Znak Znaczenie ^ Dopasowuje początek napisu $ Dopasowuje koniec napisu \b Dopasowuje początek lub koniec słowa \d Dopasowuje dowolna cyfrę \D Dopasowuje dowolny znak, który nie jest cyfra \s Dopasowuje pustą przestrzeń odpowiednik: [ \t\n\r\f\v] \S Negacja do \s odpowiednik: [^ \t\n\r\f\v] \w Dopasowuje znak alfanumeryczny odpowiednik: [a-za-z0-9_] \W Negacja do \w odpowiednik: [^a-za-z0-9_]

36 36 Regex II Znak Znaczenie x? Dopasowuje wystąpienie x zero lub jedno raz x* Dopasowuje x zero lub więcej razy x+ Dopasowuje x jeden lub więcej razy x{n,m} (a b c) (x) Dopasowuje znak x co najmniej n razy, lecz nie więcej niż m razy Dopasowuje a albo b albo c Definicja grupy dopasowana wartość dostępna za pomocą groups(), na obiekcie zwróconym przez re.search. Dopasowuje dowolny pojedynczy znak (z wyjątkiem nowej linii, o ile nie ustawiona flaga re.dotall) [ ] Dopasowuje zestaw lub zakres znaków (np. [abc], [a-za-z] [^ ] Negacja do [ ]

37 37 Obiekt match m = re.search("a(b*)c", "_abbbbc_") Wyrażeni e m.group(1 ) Wartoś ć bbbb Opis Dopasowany string pierwszej dopasowanej grupy m.start(1) 2 Indeks startu w stringu elementu pierwszej dopasowanej grupy m.end(1) 6 Indeks końca w stringu elementu pierwszej dopasowanej grupy

38 Dekodowanie numerów telefonów 38 EX7 Formaty numerów telefonów: (800) x ext work 1-(800) #1234

39 39 Regex narzędzia i linki dla Pythona i różnych innych języków webowy tester Regex narzędzie GUI do testowania Regex

40 40 Moduł struct Pakowanie i rozpakowywanie struktur binarnych na podstawie definicji formatu danych Potrzebne przy konwersji, zapisie/odczycie binarnych plików i struktur danych

41 41 Moduł struct funkcje exception struct.error wyjątek generowany dla niepoprawnych specyfikacji typów struct.pack(fmt, v1, v2,...) zwraca string zawierający spakowaną (binarną) strukturę w formacie fmt złożoną z wartości v1, v2,... (argumenty muszą pasować do formatu wzorca!) struct.pack_into(fmt, buffer, offset, v1, v2,...) j.w. ale pakuje wynik do zapisywalnego bufora buffer zaczynając w miejscu offset struct.unpack(fmt, string) rozpakowuje strukturę binarną (string) zgodnie z formatem fmt; zwraca listę niemodyfikowalną wartości; Uwaga: len(string) == struct.calcsize(fmt) struct.unpack_from(fmt, buffer[, offset=0]) j.w. ale rozpakowuje z bufora buffer zaczynając od miejsca offset struct.calcsize(fmt) zwraca długość struktury dla określonej specyfikacji formatu wzorca

42 42 Moduł struct typy I Format C Type Python x pad byte no value c char string of length 1 b signed char integer B unsigned char integer h short integer H unsigned short integer i int integer I unsigned int integer or long l long integer L unsigned long long q long long long

43 43 Moduł struct typy II Format C Type Python f float float d double float s char[] string p char[] string P void * long Wzorzec formatu Znaczenie 10s String o długości 10 4h <HLQ Liczba powtórzeń z wyjątkiem typu s (to samo co hhhh ) Pierwszy znak określa kolejność bajtów i wyrównanie w tym wypadku little-endian/standard

44 44 Moduł struct kolejność bajtów Znak Kolejność bajtów (domyślny) Natywny Natywny = Natywny Standard < little-endian Standard > big-endian Standard! network (= big-endian) Standard Natywny rozmiar i wyrównanie określa funkcje kompilatora C sizeof(). Standardowy rozmiar i wyrównanie = bez wyrównania, short = 2 bajty; int, long = 4 bajty; long long = 8 bajty; float = 4 bajty, double = 8 bajtów

45 Moduł struct przykład 45 EX6 BIN2TXT konwerter binarnych plików z danymi typu int do pliku tekstowego

46 46 OPERACJA NA PLIKACH

47 47 Co o plikach? Typy plików: Tekstowe (automatyczna obsługa znaków końca linii) Binarne Pliki wirtualne urządzeń (znakowe/blokowe) Tryby dostępu Buforowany/niebuforowany Blokujący/nieblokujący Funkcje/Operacje na plikach i katalogach Moduły obsługi plików: os, os.path, fileinput, tempfile, shutil CSV, XML, ZIP, rekordy, DB

48 48 Moduł io open(filename[, mode[, bufsize]]) otwiera plik filename w trybie mode (domyślnie r ); bufsize określa tryb i wielkość bufora close(file) zamyka plik file file.readline([limit]) czyta linię tekstu z pliku (max limit znaków) file.readlines([limit]) czyta linie z pliku i zwraca w formie listy (max limit znaków) file.seek(offset[, whence]) zmienia pozycję w pliku o offset względem (whence): 0 początku pliku (domyślnie); 1 pozycji aktualnej; 2 końca pliku; zwraca bezwzględną pozycję aktualną file.tell() Return the current stream position file.read([n]) czyta i zwraca zadaną liczbę n bajtów z pliku file.readall() czyta zawartość całego pliku file.write(buf) pisze bajty z bufora buf do pliku

49 49 open/read/close # open( C:\\path\\file, w+ ) # tekstowy, read/write # open( C:/path/file, rb ) # binarny, read >>> f = open(r C:\path\file ) >>> f.read(10) >>> print f.tell() >>> f.seek(10) >>> print f.tell() >>> f.close()

50 50 open() tryb otwarcia Wartość Początkowa pozycja w pliku Odczyt? r Początek (domyślnie) Tak Nie w Początek Nie Tak a Koniec Nie Tak r+ Początek Tak Nie w+ Początek Tak Tak a+ Koniec Tak Tak U Uniwersalna obsługa końców linii: \n, \r, \r\n Zapis?

51 51 Pliki zapis/odczyt # ZAPIS: fid = open( test.txt, w ) fid.write( Hello\nWorld ) fid.close() # ODCZYT: cały plik na raz! fid = open( test.txt, r ) s = fid.read() fid.close() # ODCZYT: linia po linii fid = open( test.txt, r ) for line in fid: print("line: " + line.strip()) fid.close()

52 52 CRLF/LF Linia tekstu zakończona znakiem nowej linii: LF (0x0A) Unix CR LF (0x0D 0x0A) Windows print ord( \r ) # 13 print ord( \n ) # 10 print \n, # \x0d\x0a '\n' w plikach tekstowych zamieniane automatycznie na koniec linii dla danej platformy

53 53 Przetwarzanie pliku tekstowego def process(line): print line # Process file line-by-line file = open( plik1.txt ) for line in file: process(line)

54 54 Wyjątki obsługi plików try: # file operations except IOError, message: print( An IO error, message) except : else: print( Succes )

55 Czytanie plików INI 55 EX8 [View] WindowSize=1024,768 BackgroundColor=green7 WindowSize=1280,1024 [Print] BackgroundColor=green5

56 56 Moduł os os.chdir(path) zmienia katalog bieżący na path os.getcwd() zwraca string z katalogiem bieżącym os.listdir(path) zwraca listę nazw w katalogu path os.mkdir(path[, mode]) tworzy katalog path z prawami dostępu mode (domyślnie 0777) os.makedirs(path[, mode]) rekursywne tworzenie katalogów os.rmdir(path) usuwa katalog path os.remove(path) usuwa plik path os.stat(path) zwraca strukturę (tuple) stat z informacjami o pliku (rozmiar, czasy, etc.) moduł os patrz dokumentacja Pythona

57 57 Moduł os.path Na danej platformie import os.path Implementacja dla różnych systemów: posixpath dla UNIXowych ntpath dla Windows macpath dla starych MacOS os2emxpath dla OS/2 EMX

58 58 Moduł os.path funkcje os.path.dirname(path) zwraca katalog dla podanej ścieżki os.path.getsize(path) zwraca rozmiar pliku w bajtach (os.error gdy plik jest niedostępny lub nieistnieje) os.path.isfile(path) True gdy path jest istniejącym i regularnym plikiem os.path.isdir(path) True gdy path jest katalogiem os.path.join(path1[, path2[,...]]) inteligentnie łączy elementy ścieżki w jedną ścieżkę wynikową moduł os.path patrz dokumentacja Pythona

59 59 Moduł glob Znajduje nazwy plików wg. zadanego wzorca zgodnie z regułami stosowanymi w systemach powłok systemu UNIX Wildcar d Dopasowuje * zero lub więcej znaków Przykład *.xls wszystkie pliki z rozszerzeniem xls? pojedynczy znak??? wszystkie pliki o nazwie składającej się dokładnie z 3 znaków [...] Pojedynczy znak z listy [!...] Pojedynczy znak nie z listy [ABC]* nazwy zaczynające się od liter A, B lub C *[!x] nazwy które nie kończą się na literę x >>> import glob >>> for path in glob.glob( C:\\source\\*.bak ):... os.remove(path)

60 60 Pliki CSV moduł CSV csv.reader(csvfile [, dialect='excel'] [, fmtparam]) zwraca obiekt typu reader dla pliku CSV. import csv cr = csv.reader(open('plik.csv'), delimiter=',', quotechar= ') for row in cr: print ':'.join(row)

61 61 CSV z obsługą błędów import csv, sys fn = "some.csv" reader = csv.reader(open(fn, "rb")) try: for row in reader: print row except csv.error, e: sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))

62 62 Inne moduły fileinput otwiera i czyta pliki podane w linii poleceń, czyli sys.argv[1:]; domyślnie sys.stdin import fileinput for line in fileinput.input(): process(line) tempfile do tworzenia tymczasowych plików i katalogów shutil wysokopoziomowe operacja na plikach (np. copytree, rmtree) urllib pobieranie stron WWW

63 63 PROGRAMOWANIE FUNKCYJNE

64 64 Źródła Programowanie funkcyjne (wykład MIMUW) nie_funkcyjne M.L. Scott, Programming Language Pragmatics, Morgan Kaufmann, 3 ed., 2009 Charming Python installments

65 65 Paradygmaty programowania Proceduralne/Imperatywne operacje wykonywane na danych (operacje zmieniają stan programu) Obiektowe opis interakcji pomiędzy obiektami Funkcyjne program jako funkcja

66 66 Imperatywne vs. Funkcyjne Cecha Imperatywne Funkcyjne Konstrukcja algorytmu Zmiana/Stan programu Kolejność wykonywania Jakie instrukcje wykonać (algorytm) i jak zmieniać stan programu Ważny Ważna Jakie transformacje danych są potrzebne Nie istnieje Mało ważna Przepływ sterowania Pętle, warunki i funkcje Funkcje, rekurencja Podstawowe elementy języka Struktury danych, instancje klas Funkcje jako obiekty firstclass, kolekcje danych (listy)

67 Konstrukcje programowania funkcyjnego w Pythonie Funkcje jako obiekty podstawowe (tzw. first-class) lambda, przekazywanie funkcji jako argument Domknięcia (ang. Closures) funkcje związane z damymi Funkcje operujące na funkcjach (ang. high-order functions) Dekoratory forma opakowań (wrapperów) dla funkcji Iteratory i Generatory Listy jako podstawowa struktura danych (List Comprehensions) 67

68 68 Lambda Lambda proste, jednolinijkowe, anonimowe funkcje Mogą być przekazywane tak jak zwykłąe funkcje nazwane Używane często jako funkcje w callback, list comprehesnsions, high-order functions return jest w nich domniemany (implicite) square = lambda x: x*x >>> square(9) 81 squares = map(lambda x: x*x, range(3)) >>> squares [0, 1, 4]

69 69 Domknięcie (Closure) Domknięcie to funkcja ze związanymi zmiennymi: składa się z funkcji, jej lokalnych zmiennych oraz referencji do zmiennych spoza zakresu (outer scope) Obiekty to metody związane z danymi na których działają; Domknięcia to dane dowiązane do funkcji # Zwraca funkcję opodatkowania daną stawką VAT def vat_taxer(rate): def taxer(amount): return amount * (float(rate) / 100) return taxer vat22 = vat_taxer(22) vat7 = vat_taxer(7)

70 70 Domknięcie przykład # zwraca funkcję mnożącą przez n def multiply_by(n): return lambda x: return x*n double = multiply_by(2) triple = multiply_by(3) >>> double(2) 4 >>> triple(4) 12

71 71 High-order functions 1 map zastosuj funkcję na każdym elemencie sekwencji: >> map(lambda x: x**2, range(1,5)) [1, 4, 9, 16] filter wybiera elementy spełniające warunek >> filter(lambda x: x%2==0, range(10)) [0, 2, 4, 6, 8] reduce redukuje elementy sekwencji do jednej wartości za pomocą funkcji: >> reduce(lambda x,y: x+y, [1, 2, 3, 4]) 10

72 72 High-order functions 2 zip zszywa kolejne elementy z sekwencji: >> zip(( a, b, c ), (1,2,3)) [( a,1), ( b,2), ( c,3)] all zwraca True, gdy wszystkie elementy są True: >> all((1, 2, alala )) True any zwraca True, gdy choś jeden element jest True: >> any((0, None, 1)) True

73 73 Dekoratory def my_decorator(fn): def wrapper(*args): print before invocation fn(*args) print after invocation return def hello_world(): print hello, world >>> hello_world() before invocation hello, world after invocation

74 74 Iteratory Iterator jest analogiem sekwencji ale z kilkoma różnicami: Często używamy funkcji, która tworzy kolejne elementy sekwencji (np. za pomocą Generatora) Elementy sekwencji są produkowane dopiero w momencie kiedy są potrzebne Iteratory mogą tworzyć sekwencje dowolnie długie (w odróżnieniu od sekwencji struktur danych ograniczonych pamięcią) Iterator to protokół (nie typ danych) na który składa się: Funkcji next() (w implementacji next ()) Raise StopIteration after last item

75 75 Generatory Generator funkcja działająca jako Iterator Każdy element jest zwracany za pomocą polecenia yield Zakończenie przez: zakończenie funkcji zwykłe return raise StopIteration

76 76 Generatory przykład def four(): x = 0 while x < 3: print("in generator, x =", x) yield x x += 1 >>> for i in four(): print(i) in generator, x = 0 0 in generator, x = 1 1 in generator, x = 2 2

77 77 Generatory wyrażenia Składniowo podobne do List Comprehensions Ewaluacja leniwa jeden element za jednym razem Mogą być używane wszędzie, gdzie jest spodziewany Iterator # Przykład 1 it = (line.strip() for line in open('input.txt')) # Przykład 2 można ominąć nawiasy w wywołaniu funkcji func(line.strip() for line in open('input.txt'))

78 3 implementacje is_prime() 78 EX9 # Implementacja imperatywna wersja 1 def is_prime(n): k = 2 while k < n: if n % k == 0: return False k += 1 return True # Implementacja funkcyjna wersja 2 def is_prime(n): return len(filter(lambda k: n%k==0, range(2,n))) == 0 # Implementacja funkcyjna wersja 3 def is_prime(n): return not any(n%k==0 for k in xrange(2,n))

79 79 PROGRAMOWANIE OBIEKTOWE

80 Programowanie obiektowe Object-oriented programming (OOP) Klasy i obiekty: Obiekty są tworzone na podstawie definicji klas Pojedynczy obiekt jest nazywany instancją klasy Dane i operacje na nich (funkcje) tworzą obiekt Operacje/funkcje zawarte w klasie są nazywane metodami Dane/zmienne w klasie są nazywane atrybutami klasy Atrybuty tworzą stan instancji klasy (obiektu) 80

81 81 Definicja klasy class circle: def init (self, radius): self.radius = radius init jest inicjalizatorem obiektu self jest referencją do obiektu # utworzenie obiektu klasy circle >> c = circle(10) c < main.circle instance at 0x004A48A0> >> dir(c) [' doc ', ' init ', ' module ', 'radius']

82 Przeszukiwanie: obiekt.atrybut Szuka pierwszego wystąpienia atrybutu w obiekcie lub we wszystkich klasach powyżej (z których dziedziczył) od dołu do góry i od lewej do prawej strony 82 class C2: x = z = 2 class C3: w = z = 3 class C1(C2, C3): x = y = 1 I1 = C1() I2 = C1()

83 83 Metody specjalne klas METODA IMPLEMENTUJE WOŁANA DLA init Konstruktor obiektu X = Class(args) del Destruktor obiektu Usuwanie obiektu X add Operator + X + Y, X += Y jeśli nie iadd or Operator (bitowy OR) X Y, X = Y jeśli nie _ior repr, str Drukowanie, konwersja print(x), repr(x), str(x) call Wywołanie funkcji X(*args, **kargs) setattr Przypisanie atrybutu X.any = value delattr Skasowanie atrybutu del X.any getattribute Pobranie atrybutu X.any getattr Pobranie atrybutu X.undefined

84 84 Metody specjalne klas c.d. METODA IMPLEMENTUJE WOŁANA DLA getitem setitem delitem Indeksowanie, przecinanie, iteracja Przypisanie indeksowane, przecinane Usuwanie indeksowane, przecinane X[key], X[i:j], także dla pętli jeśli nie iter X[key] = value, X[i:j] = sequence del X[key], del X[i:j] len Długość len(x), testowanie gdy nie bool bool Testy logiczne bool(x), ( nonzero w Py 2.6) lt, gt, le, ge, eq, ne Porównania X < Y, X > Y, X <= Y, X >= Y, X == Y, X!= Y ( cmp w Py 2.6)

85 85 Metody specjalne klas c.d. METODA IMPLEMENTUJE WOŁANA DLA iadd Operator dodawania w miejscu X += Y iter, next Iterator I=iter(X), next(i); dla pętli contains Tester przynależności item in X (dla iterowalnych) index enter, exit get, set, delete Wartość całkowitoliczbowa Menadżer kontekstu with Deskryptory atrybutów hex(x), bin(x), oct(x), O[X], O[X:] (zastpuje Py 2.x oct, hex ) with obj as var: X.attr, X.attr = value, del X.attr new Tworzenie obiektu przed init

86 86 Atrybuty specjalne klas Wszystkie klasy posiadają następujące atrybuty: doc string dokumentacji class referencji do obiektu klasy (z każdej instancji) bases lista klas bazowych name nazwa klasy obiektu module nazwa modułu, w którym klasę zdefiniowano dict słownik będący przestrzenią nazw klasy (ale nie superklas)

87 87 Przykład 1 zmienne klasowe class Circle: pi = # class variable def init (self, radius = 1): self.radius = radius def area(self): return self.radius**2 * pt print Circle.pi circle1 = Circle() print circle1.area() circle5 = Circle(5) print circle5.area()

88 88 Przykład 2 metody statyczne class Circle: all_circles = [] # class variable pi = # class variable def init (self, r=1): self.radius = r self. class.all_circles.append(self) def area(self): return self. class.pi * self.radius * def total_area(): total = 0 for c in Circle.all_circles: total = total + c.area() return total

89 89 Przykład 3 dziedziczenie class Shape: def init (self, x, y): self.x = x self.y = y class Square(Shape): def init (self, side=1, x=0, y=0): super(). init (x, y) self.side = side class Circle(Shape): def init (self, r=1, x=0, y=0): super(). init (x, y) self.radius = r

90 90 Przykład 4 getters/setters class Temperature: def init (self): self. t_fahr = 0 # private in def temp(self): # in ºC return (self. def temp(self, new_temp): # in ºC self. t_fahr = new_temp*9/5 + 32

91 Klasa operacji na ułamkach zwykłych 91 EX10 Implementacja klasy ułamek oraz operacji: dodawania, odejmowania, mnożenia i dzielenia ułamków wyświetlania ułamków

92 92 PYTHON 3

93 93 Int int jest obecnie odpowiednikiem dawnego long int nie ma wartości maksymalnej (sys.maxint) 2/4 == 0.5 dzielenie jest już zmiennopozycyjne! 2//4 == 0 zwraca rezultat stałopozycyjny Zapis ósemkowy: 0o720 zamiast 0720

94 94 Stringi UNICODE Typ str (string) jest UNICODE! Nie można używać u"..." dla stringów Unicode Stringi binarne (1znak = 1bajt) wymagają zapisu b"..." Typy str i bytes nie mogą być mieszane - trzeba wykonywać konwersję: str -> bytes: str.encode() bytes -> str: bytes.decode() Alternatywnie: bytes(s, encoding=...) i str(b, encoding=...)

95 95 bytes i bytearray str i bytes są niemodyfikowalne (immutable) Typ bytearray jest modyfikowalnym do buforowanie danych binarnych Pliki otwierane w trybie tekstowym używają funkcji encoding do konwersji pomiędzy strings w pamięci i bajtami na dysku Pliki w trybie binarnym używają bytes/ bytearray

96 96 bytes Definicja stringów binarnych a = b"acme " b = bytes([1,2,3,4,5]) # literał # z listy c = bytes(10) # tablica 10 zero-bajtów d = bytes( ąćęłń","utf-8") # encoding ze stringu Uwaga to są tablice bajtów! >>> s = b"acme " >>> s[0] 65 >>> s[1] 67

97 97 Encoding dla plików Funkcja open() ma opcjonalny parametr: encoding: f=open("a.txt","rt,encoding="latin-1") Jeśli niepodany (domyślny): >>> f = open("somefile.txt","rt") >>> f.encoding 'UTF-8'

98 98 Latin-1 Latin-1 (znany także jako "iso ") Ograniczony dla znaków 8-bit (0-255) Wartości bajtów 1-1 Emuluje zachowanie Python 2.x Najszybszy encoding dla czystych 8-bitowych plików tekstowych

99 99 Encoding everywhere >>> import sys >>> sys.stdin.encoding 'UTF-8' >>> sys.stdout.encoding 'UTF-8 Uwaga na encoding zależny od ustawionego locale w OS: >>> import sys >>> sys.stdout.encoding 'US-ASCII'

100 100 Builtins Usunięte builtins: apply() callable() coerce() execfile() the file type reduce() reload() dict.has_key() Zmienione: raw_input() -> input()

101 101 print jest funkcją!!!

102 102 Nowe formatowanie stringów Po staremu: s = "%10s %10d %10.2f" % (name, shares, price) Po nowemu (Python 3): s = "{0:10s} {1:10d} {2:10.2f}".format(name,shares,price) Patrz dokumentacja Python 3 format()

103 103 ITERATORY Te funkcje zwracają Iteratory zamiast list: dict.keys(), dict.items(), dict.values (nie wspierane: dict.iterkeys(), dict.iteritems(), dict.itervalues()) map() filter() zip() range() robi za dawne xrange()

104 104 Uwaga na ITERATORY # To już nie działa w PYTHON 3! k = d.keys(); k.sort() # Użyj k = sorted(d) # to jest obiekt typu iterator! >>> {1: 0}.keys() <dict_keys object at 0x7ffdf8d53d00>

105 105 Listy vs. Iteratory PYTHON 2.x PYTHON 3 a = map(lambda x: x[1], items) a = [x[1] for x in items] for name in map(str.lower, names):... a = filter(lambda n: n%2==0, nums) for key in filter(str.isdigit, keys):... dict(zip(sins, persons)) bez zmian a = [n for n in nums if n%2==0] bez zmian bez zmian

106 106 Dictionary comprehensions Było dla list, tera jest też dla słowników: a = {key.upper():value for key,value in d.items()}

107 107 Wyjątki # Stara składnia raise Exception, Ooop exception! # Nowa składania raise Exception( Ooop exception! ) try: a=int( hotdog ) except ValueError as oops: print( ValueError has occurred, oops)

108 108 Moduły usunięte cfmfile cl md5 and sha (replaced with hashlib) mimetools, MimeWriter, mimify, multifile, and rfc822 (replaced with the e- mail package) posixfile sv timing (use time.clock instead) Canvas commands and popen2 (replaced with subprocess) compiler dircache dl fpformat htmllib (replaced with HTMLParser) mhlib (replaced with mailbox) stat (changed to os.stat) urllib (replaced with urllib2)

109 109 Moduły zmienione _winreg -> winreg ConfigParser -> configparser copy_reg -> copyreg Queue -> queue SocketServer -> socketserver markupbase -> _markupbase repr -> reprlib test.test_support -> test.support Zintegrowane: dbm: anydbm, dbhash, dbm, dumbdbm, gdbm, whichdb html: HTMLParser, htmlentitydefs http: httplib, BaseHTTPServer, CGIHTTPServer, SimpleHTTPServer, Cookie, cookielib tkinter zawiera całego Tkinter (poza turtle) urllib: urllib, urllib2, urlparse, robotparse xmlrpc: xmlrpclib, DocXMLRPCServer, SimpleXMLRPCServer

110 110 Narzędzie 2to3 Automatyczne narzędzie do konwersji kody Pythona 2.x do Pythona 3. Narzędzie 2to3 znajduje się w podkatalogu: Tools/scripts Wewnętrznie korzysta z modułu: lib2to3 Użycie z zapisem do oryginalnego pliku: $ 2to3 -w ex.py (tworzy także backup pliku oryginalnego ex.py.bak)

111 111 Py launcher w Python 3.3+ Dwa uruchamiacze do Pythona (instalowane w katalogu systemu Windows!) py.exe dla aplikacji konsolowych pyw.exe dla aplikacji okienkowych (bez konsoli) Są automatycznie skojarzone z plikami ".py" i ".pyw"

112 112 Py launcher przykłady Z LINII POLECEŃ: C:\temp>py -3 script.py # runs under latest 3.X C:\temp>py -2 script.py # runs under latest 2.X C:\temp>py -2.6 script.py # runs under 2.6 (only) ZE SKRYPTU: #!python3... # runs under latest 3.X installed #!python2... # runs under latest 2.X installed #!python # runs under 2.6 (only)

113 113 Py launcher Domyślnie skrypty są uruchamiane w najnowszej zainstalowanej wersji Python 2.x Zmiana zachowania za pomocą zmiennych środowiskowych: PY_PYTHON=3 zmiana domyślnej wersji na 3.x Alternatywnie za pomocą pliku konfiguracyjnego py.ini w katalogu skryptu

114 114 c.d.

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ] JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA Marcin Lewandowski [ mlew@ippt.gov.pl ] OPERACJE NA STRINGACH 2 Bit/Byte/Word Bit 0/1 Byte 8 bitów Word 2 bajty 16 bitów Long Word 4 bajty 32 bitów Long Long

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

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 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

Microsoft IT Academy kurs programowania

Microsoft 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ół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

Język ludzki kod maszynowy

Ję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ółowo

Bł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. 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ółowo

Środowisko programisty

Środowisko programisty Środowisko programisty 1/35 Środowisko programisty Język Python cz. 3 dr inż. Grzegorz Michalski 7 kwietnia 2014 Środowisko programisty 2/35 Kod samotestujący Tworzenie def t e s t e r ( ) : p r i n t

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

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

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

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

Programowanie RAD Delphi

Programowanie 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ółowo

Podstawy. Jan Koprowski 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

Podstawy programowania. Python wykład 6

Podstawy 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ół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

Pliki. Informacje ogólne. Obsługa plików w języku C

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego

Bardziej szczegółowo

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include

Bardziej szczegółowo

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pascal 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ół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

Python i programowanie funkcyjne. Python i programowanie funkcyjne czyli nie tylko obiektowość rządzi. OSEC Funkcyjnie w języku Python 1 z 40

Python i programowanie funkcyjne. Python i programowanie funkcyjne czyli nie tylko obiektowość rządzi. OSEC Funkcyjnie w języku Python 1 z 40 czyli nie tylko obiektowość rządzi 1 z 40 O czym będę mówił... Jak najmniej teorii bo nie czas i miejsce... Próba odpowiedzi na pythanie: Czy warto programować nie tylko obiektowo? Jak język Python wspiera

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Wprowadzenie do języka Ruby

Wprowadzenie do języka Ruby Aleksander Pohl apohllo.pl Krakow Ruby Users Group 19. maja 2007 Kilka słów o Ruby Yukihiro Matz Matsumoto: [...] Poszukiwałem języka potężniejszego od Perla i bardziej obiektowego od Pythona. Wówczas,

Bardziej szczegółowo

SQL 4 Structured Query Lenguage

SQL 4 Structured Query Lenguage Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo

2. Składnia Pythona. Robert Janczewski. Gdańsk, 2014

2. 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ół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

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika 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ółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

Java Język programowania

Java Język programowania Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja

Bardziej szczegółowo

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

Ję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ółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. 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ółowo

Wstęp do ruby dla programistów javy

Wstęp do ruby dla programistów javy czyli dlaczego java ssie Akademickie Stowarzyszenie Informatyczne 26 lutego 2011 Podstawowe cechy Ruby vs Java Wieloparadygmatowy Imperatywny Typowanie Silne Dynamiczne Otwarte klasy Interpretowany Wszystko

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

Właściwości i metody obiektu Comment Właściwości

Właściwości i metody obiektu Comment Właściwości Właściwości i metody obiektu Comment Właściwości Właściwość Czy można zmieniać Opis Application nie Zwraca nazwę aplikacji, która utworzyła komentarz Author nie Zwraca nazwę osoby, która utworzyła komentarz

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

Języki skryptowe w programie Plans

Ję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ółowo

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

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Serwer 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.: 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ółowo

PROGRAMOWANIE W ŚRODOWISKU FLASH wykład 2

PROGRAMOWANIE W ŚRODOWISKU FLASH wykład 2 PROGRAMOWANIE W ŚRODOWISKU FLASH wykład 2 Paweł Woszkowski SWSIM 2009 ADOBE ACTIONSCRIPT Programming language of the Adobe Flash Platform. Originally developed as a way for developers to program interactivity,

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 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ółowo

Kiedy i czy konieczne?

Kiedy i czy konieczne? Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 3

PARADYGMATY PROGRAMOWANIA Wykład 3 PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na

Bardziej szczegółowo

Plan Przegląd podstawowych typów i konstrukcji języka

Plan 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ółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 5. 30 października 2013 Plan wykładu 1 2 3 4 yield from Zamiast Example for item in iterable: yield item: można pisać Example yield from iterable Plan wykładu 1 2 3 4 Przykłady wyrażeń regularnych

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 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ółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Java. 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 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ółowo

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu

Bardziej szczegółowo

Pobieranie argumentów wiersza polecenia

Pobieranie argumentów wiersza polecenia Pobieranie argumentów wiersza polecenia 2. Argumenty wiersza polecenia Lista argumentów Lista argumentów zawiera cały wiersz poleceń, łącznie z nazwą programu i wszystkimi dostarczonymi argumentami. Przykłady:

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Wyrażenia regularne. Wyrażenia regularne 1/41

Wyrażenia regularne. Wyrażenia regularne 1/41 Wyrażenia regularne Wyrażenia regularne 1/41 Wyrażenia regularne 2/41 Po co wyrażenia regularne? Polecenie: $ grep est tekst.txt Zawartość tekst.txt To jest plik tekstowy. Testujemy narzędzie grep. Trzecia

Bardziej szczegółowo

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Programowanie C# mgr in. Dariusz Ku p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Translacja kodu Kod ródłowy Java, C# Kompilator Kompilator Kod poredni Interpreter Maszyna wirtualna

Bardziej szczegółowo

Ję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. 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ółowo

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16 M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16

Bardziej szczegółowo

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

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

Wstę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ółowo

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML Wyrażenia regularne c:\> dir *.exe $ rm *.tmp Wyrażenia regularne 'alamakota' '(hop!)*' { '',

Bardziej szczegółowo

Reprezentacja symboli w komputerze. Znaki alfabetu i łańcuchy znakowe. Programowanie Proceduralne 1

Reprezentacja symboli w komputerze. Znaki alfabetu i łańcuchy znakowe. Programowanie Proceduralne 1 Reprezentacja symboli w komputerze. Znaki alfabetu i łańcuchy znakowe. Programowanie Proceduralne 1 ASCII The American Standard Code for Information Interchange, 1968 r. 7 bitów, liczby z zakresu 0-127

Bardziej szczegółowo

Podstawowe 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. 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ółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 2. 11 października 2013 Plan wykładu 1 Klasy i obiekty 2 3 4 Deklaracja klasy Przykłady class Figura: Pierwsza klasa def init (self, x, y): self.x = x self.y = y Definicja metody class Figura, cd.

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 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ółowo

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania). Funkcje w Pythonie Funkcje to części programu wielokrotnego użytku. Pozwalają nam nadad nazwę blokowi wyrażeo, a następnie uruchamiad ten blok używając tej nazwy gdziekolwiek w programie, dowolną ilośd

Bardziej szczegółowo

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists() Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,

Bardziej szczegółowo

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura

Bardziej szczegółowo

Należy ściągnąć oprogramowanie Apache na platformę

Należ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ółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Wprowadzenie do Scilab: podstawy języka Scilab

Wprowadzenie do Scilab: podstawy języka Scilab Wprowadzenie do Scilab: podstawy języka Scilab Magdalena Deckert, Izabela Szczęch, Barbara Wołyńska, Bartłomiej Prędki Politechnika Poznańska, Instytut Informatyki Narzędzia Informatyki Narzędzia Informatyki

Bardziej szczegółowo

Załącznik nr 2 do Umowy Nr. o korzystanie z usługi Identyfikacji Przychodzących Płatności Masowych z dnia.

Załącznik nr 2 do Umowy Nr. o korzystanie z usługi Identyfikacji Przychodzących Płatności Masowych z dnia. Załącznik nr 2 do Umowy Nr. o korzystanie z usługi Identyfikacji Przychodzących Płatności Masowych z dnia. Informacja o strukturze pliku, przekazywanego przez Bank dla Klienta za pośrednictwem systemu

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

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Pracownia Komputerowa wyk ad VII

Pracownia Komputerowa wyk ad VII Pracownia Komputerowa wyk ad VII dr Magdalena Posiada a-zezula Magdalena.Posiadala@fuw.edu.pl http://www.fuw.edu.pl/~mposiada Magdalena.Posiadala@fuw.edu.pl 1 Notacja szesnastkowa - przypomnienie Szesnastkowy

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

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

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C Wymagana wiedza wstępna: 1) Student musi 1) Znać język C 2) Znać zasady zarządzania pamięcią w komputerze 3) Znać pojecie wskaźnika

Bardziej szczegółowo

Przydatne sztuczki - sql. Na przykładzie postgres a.

Przydatne sztuczki - sql. Na przykładzie postgres a. Przydatne sztuczki - sql. Na przykładzie postgres a. M. Wiewiórko 05/2014 Plan Uwagi wstępne Przykład Rozwiązanie Tabela testowa Plan prezentacji: Kilka uwag wstępnych. Operacje na typach tekstowych. Korzystanie

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Programowanie 3 - Funkcje, pliki i klasy

Programowanie 3 - Funkcje, pliki i klasy Instytut Informatyki Uniwersytetu Śląskiego Laborki funkcja; parametry funkcji; typ zwracany; typ void; funkcje bez parametrów; napis.length() - jako przykład funkcji. Zadania funkcja dodająca dwie liczby;

Bardziej szczegółowo

Wykład 6 Dziedziczenie cd., pliki

Wykład 6 Dziedziczenie cd., pliki Wykład 6 Dziedziczenie cd., pliki Autor: Zofia Kruczkiewicz 1. Dziedziczenie cd. 2. Pliki - serializacja Zagadnienia 1. Dziedziczenie aplikacja Kalkultory_2 typu Windows Forms prezentująca dziedziczenie

Bardziej szczegółowo

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego 1 SKRYPTY Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego z = 1 y + 1+ ( x + 2) 3 x 2 + x sin y y + 1 2 dla danych wartości x = 12.5 i y = 9.87. Zadanie to można rozwiązać: wpisując dane i wzór wyrażenia

Bardziej szczegółowo

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 Standardy reprezentacji wartości całkowitoliczbowych

Bardziej szczegółowo

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

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

Ćwiczenie 1. Przygotowanie środowiska JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.

Bardziej szczegółowo

XQuery. sobota, 17 grudnia 11

XQuery. sobota, 17 grudnia 11 XQuery XQuery XQuery pozwala na wydobywanie danych z dokumentów XML w sposób podobny do tego w jaki używany jest SQL do tabel w bazach danych. XQuery to język do wykonywania zapytań na dokumentach XML.

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

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Język PHP Paweł Witkowski Wydział Matematyki, Informatyki i Mechaniki Jesień 2011 P. Witkowski (Wydział Matematyki, Informatyki i Mechaniki) BDiUS w. VIII Jesień 2011 1 /

Bardziej szczegółowo

Laboratorium Programowania Kart Elektronicznych

Laboratorium Programowania Kart Elektronicznych Laboratorium Programowania Kart Elektronicznych Programowanie BasicCard Marek Gosławski Przygotowanie do zajęć dokumentacja ZeitControl BasicCard środowisko programistyczne karta BasicCard Potrzebne wiadomości

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych Reprezentacja danych w systemach komputerowych Kod (łac. codex - spis), ciąg składników sygnału (kombinacji sygnałów elementarnych, np. kropek i kresek, impulsów prądu, symboli) oraz reguła ich przyporządkowania

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu Programowanie V Dariusz Skibicki Wydział Inżynierii Mechanicznej Uniwersytet Technologiczno-Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy dariusz.skibicki(at)utp.edu.pl Programowanie Projektowanie

Bardziej szczegółowo