Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy. Michaª Alichniewicz. Gda«sk Studenckie Koªo Automatyków SKALP
|
|
- Beata Kaźmierczak
- 9 lat temu
- Przeglądów:
Transkrypt
1 Spotkania z Pythonem Cz ± 1 - podstawy Michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. M. Alichniewicz (SKALP) Python vol / 66
2 Gdzie si mo»na spotka z Pythonem? Dystrybucja Linuksa Ubuntu - ±rodowisko graczne Unity Oprogramowanie do zarz dzania projektami TRAC (wykorzystywane m.in przez NASA) Klient Dropbox'a Serwis Instagram Blender / LibreOce (jako j zyk skryptowy / makra) M. Alichniewicz (SKALP) Python vol / 66
3 Gªówne cechy j zyka Dynamiczny j zyk ogólnego przeznaczenia Struktura j zyka jest ukierunkowana na prostot i czytelno± kodu Multiplatformowo± (wliczaj c w to mikrokontrolery) Mo»liwo± ª czenia z innymi j zykami programowania Šatwo± instalacji dodatkowych bibliotek (i ich mnogo± ) Ogromna ilo± zastosowa«- od aplikacji desktopowych, po aplikacje internetowe Umo»liwia prac w trybie wiersza polece«, nie trzeba kompilowa plików przed uruchomieniem Nie wymaga dedykowanego edytora Rozwijane s dwie wersje - 2.x oraz 3.x M. Alichniewicz (SKALP) Python vol / 66
4 Przykªadowy kod Najwi kszy wspólny dzielnik - implementacja w C: /** * Przykladowy program obliczajacy najwiekszy * wspolny dzielnik (algorytm Euklidesa) */ int nwd(int a, int b) { int c; while (b > 0) { c = a % b; a = b; b = c; } return a } M. Alichniewicz (SKALP) Python vol / 66
5 Przykªadowy kod Najwi kszy wspólny dzielnik - implementacja w Pythonie: def nwd(a,b): """ Przykladowy program obliczajacy najwiekszy wspolny dzielnik (algorytm Euklidesa) """ while b > 0: c = a % b a = b b = c return a M. Alichniewicz (SKALP) Python vol / 66
6 Jakie s podstawowe ró»nice? Brak klamer - bloki s oznaczane przez wci cie kodu! Brak ±redników - instrukcje nie musz si ko«czy ±rednikiem! Zmienne deklarujemy w momencie u»ycia - nie ma potrzeby robienia tego wcze±niej, jak np. w C M. Alichniewicz (SKALP) Python vol / 66
7 Zmienne - podstawowe typy i operacje M. Alichniewicz (SKALP) Python vol / 66
8 Typy zmiennych - podstawowe Typ liczbowy (krótki) - int: a = 5 # Liczba rowna "5" b = 0x0A # Liczba rowna "10" Typ liczbowy (dªugi) - long: a = L # Duza liczba ujemna b = L # Jeszcze wieksza liczba Typ liczbowy (liczba zmiennoprzecinkowa) - oat: a = 1.23 # Mala liczba b = e-9 # Jeszcze mniejsza liczba Typ liczbowy (zespolony) - complex: a = -1+0j # Dobry biegun b = 1+2.3e-1j # Zly, niedobry biegun M. Alichniewicz (SKALP) Python vol / 66
9 Typy zmiennych - podstawowe Typ logiczny - boolean: a = True b = False # wazna jest wielkosc liter! Typ pusty - NoneType: a = None Typ tekstowy (ci g znaków) - str: a = 'Studenckie Kolo Automatykow SKALP' b = "Tak tez mozna zdefiniowac tekst" c = """A to jest bardzo dlugi tekst: Lorem ipsum dolor sit amet, consectetur adipiscing elit. """ Uwaga: je»eli w kodzie pojawi si tekst wielolinijkowy, typu: """ Lorem ipsum dupsum bupsum """ nie przypisany do»adnej zmiennej, wtedy jest to konstrukcja komentarza wielolinijkowego. M. Alichniewicz (SKALP) Python vol / 66
10 Podstawowe operacje na zmiennych Operacje arytmetyczne: Dodawanie a = a + b # Dodaj a do b i zapisz do b a += b # Tak tez mozna a += 1 # Tak wyglada inkrementacja - nie ma czegos # typu "i++" Odejmowanie a = a - b # Odejmij b od a i zapisz do a a -= b # Tak tez mozna a -= 1 # Tak wyglada derementacja - nie ma czegos # typu "i--" Mno»enie a = a * b # Pomnoz a razy b a *= b # To tez zadziala a = a * 2 # Dajmy jakas liczbe zeby literkom # smutno nie bylo M. Alichniewicz (SKALP) Python vol / 66
11 Podstawowe operacje na zmiennych Dzielenie i reszta z dzielenia a = a / b # Podziel a przez b a /= b # To tez zadziala a = a % 2 # Reszta z dzielenia przez 2 b %= 3 Pot gowanie a = a ** b # a do potegi b a **= b # To tez zadziala a = b ** 2 # Do kwadratu! Poszczególne typy liczbowe mo»na ze sob ª czy, uzyskuj c w efekcie liczb typu najwyzszego (o co chodzi: mno» c liczb dªug i krótk, dostaniemy liczb dªug. Dodaj c liczb zmiennoprzecinkow do liczby dªugiej, otrzymamy liczb zmiennoprzecinkow. Dziel c liczb zmiennoprzecinkow przez liczb zespolon, otrzymamy liczb zespolon etc.) M. Alichniewicz (SKALP) Python vol / 66
12 Podstawowe operacje na zmiennych Operacje logiczne (dotyczy liczb caªkowitych): Iloczyn logiczny a = a & b # Iloczyn logiczny a i b a &= b # j.w. a = b & 0xF0 # iloczyn logiczny z liczb Suma logiczna a = a b # suma logiczna a i b a = b a = a 0x3 Alternatywa wykluczaj ca (XOR) a = a ^ b # a XOR b a ^= b # To tez zadziala a = a ^ 0xFF M. Alichniewicz (SKALP) Python vol / 66
13 Podstawowe operacje na zmiennych Przesuni cie bitowe a = a >> 2 # Odpowiednik dzielenia razy 2 a >>= b # wersja skrocona a = b << 4 # Mnozymy b <<= 3 # ale w skrocie Negacja bitowa a = ~b # Tu nie ma co skracac... M. Alichniewicz (SKALP) Python vol / 66
14 Operacje na ci gach znaków Dodawanie a = a + b # Polaczenie ciagow a i b w jeden a += 'dadada' # Dodanie ciagu 'dadada' do a Mno»enie przez liczb caªkowit a = 'a' * 5 # Zwielokrotnienie ciagu 'a' # pieciokrotnie a *= 5 # To juz skads znamy Co logiczne - nie mo»emy mno»y tekstu przez tekst, czy go dzieli przez liczb, etc. Tak samo jak nie mo»emy mno»y przez liczb uªamkow (jak kto± uzyska dla przykªadu, dwie i póª literki J, to mu pogratuluj ) M. Alichniewicz (SKALP) Python vol / 66
15 Typy zmiennych - kolekcje Python, co jest niecz sto spotykane w innych j zykach, posiada specjalne rodzaje typów, tzw. kolekcje. Zgodnie z nazw, skªadaj si z specjalnie uªo»onego zbioru typów prostych (kolekcji tych typów): krotka, ang. tuple - mo»na to okre±li jako staªa tablica (nie mo»emy zmienia warto±ci, elementów, kolejno±ci, dodawa nowych elementów, etc.). Elementy mog by dowolnego typu: a = (1,2,3) # Jakies wartosci, np. zgrupowane # parametry jakiejs funkcji b = (4,5, 'jakis tekst nie zaszkodzi') c = (a, (1,2)) d = a[1] # Odwolanie do elementu e = b[1:3] # Pobranie elemntow od indeksow # 1 do 3 i zebranie ich w nowa tuple f = (0,) # Tupla 1-elementowa - trzeba pamietac # o przecinku po elemencie! g = (1,) * 6 # Tupla z szesciu ``1'' Tuple cz sto s wykorzystywane do grupowania warto±ci parametrów, lub zwracania kilku warto±ci z funkcji. M. Alichniewicz (SKALP) Python vol / 66
16 Typy zmiennych - kolekcje lista, ang. list - w przeciwie«stwie do tupli, mo»emy zmienia elementy, jak i dodawa nowe b d¹ usuwa istniej ce. Podobnie jak w tuplach, elementy mog by dowolnego typu: a = [1,2,3] # Jakies wartosci, np. zgrupowane # parametry jakiejs funkcji b = range(1,4) # Da to samo co wyzej c = [None]*4 # Stworzy liste o 4 elementach pustych, # zamiast None moze byc cokolwiek d = b[3] e = b[1:3] # Zachowanie podobne jak w tuplach, ale # tu tworzymy nowe listy f = [[1,2], [3,4]] # Mozemy zagniezdzac g = [] # Pusta lista Jest to typowy przykªad tablicy znanej z C. M. Alichniewicz (SKALP) Python vol / 66
17 Typy zmiennych - kolekcje Listy oraz tuple zachowuj si podobnie jak ci gi tekstowe, czyli mo»na poª czy kilka mniejszych list: a = [1, 2] b = [3, 4] c = a + b # W efekcie dostaniemy [1, 2, 3, 4] c = c + [] # Dalej zostaje to co wyzej - dodanie # pustej listy nic nie da b d¹ krotek (tupli): a = (4, 3) b = (2, 1) c = a + b # W efekcie dostaniemy (4, 3, 2, 1) stworzy jedn, wi ksz list lub tuple. Kolekcje musz by tego samego typu, tj. do listy nie mo»na doda tupli. M. Alichniewicz (SKALP) Python vol / 66
18 Typy zmiennych - kolekcje zbiór, ang. set - dosªownie uporz dkowany zbiór elementów - podobne do listy, ale elementy nie mog si powtarza i s automatycznie sortowane: a = {1,2,3} zbiór staªy, ang. frozenset - podobnie jak zwykªy zbiór, ale nie mo»na go modykowa : a = frozenset([1,2,3]) S to typowo matematyczne typu danych, wi c mo»na na nich robi wszystkie znane z matematyki operacje na zbiorach - iloczyn, suma, etc: c = a & b # Iloczyn zbiorow a i b c = a b # Suma zbiorow a i b c = a ^ b # Elementy ``skrajne'' (a b ) - (a & b) c = a - b # Roznica zbiorow M. Alichniewicz (SKALP) Python vol / 66
19 Typy zmiennych - kolekcje sªownik, ang. dictionary. Jest to rodzaj tablicy, w której za indeks mog robi praktycznie dowolnie wybrane warto±ci, zdeniowane przez nas: a = { 'indeks1': 'wartosc_1', 42: 'Ultimate Question of Life, ' 'the Universe, and Everything', (1,2): ('Tak tez mozna', 3.14) } Odowªujemy si do takiego sªownika w prosty sposób: a['indeks1'] + a[42] # Da nam w wyniku 'wartosc_1ultimate Question...' Sªownik jest odpowiednikem tablicy asocjacyjnej znanej m.in. z j zyka PHP. Jest to konstrukcja stosunkowo rzadko spotykana w innych j zykach. M. Alichniewicz (SKALP) Python vol / 66
20 Typy zmiennych - kolekcje Z kolekcji do których elementów mo»emy odwoªywa si wg. klucza (listy oraz sªowniki) mo»emy w prosty sposób usuwa elementy (sªowo kluczowe del). Nie dotyczy to tupli, która z denicji jest staªa. a = [1,2,3] del a[1] print repr(a) # Wyswietli [1,3] b = {'1': 1, '2': 2, '3': 'blabla'} del b['2'] print repr(b) # Wyswietli {'1': 1, '3': 'blabla'} Ilo± elementów w kolekcji (dowolnej) mo»emy sprawdzi funkcj len: a = (1,2,3) b = len(a) # b wynosi 3 c = len((1,2,(1,2))) # c rowniez wynosi 3 # na poziomie ``glownym'' # sa 3 elementy M. Alichniewicz (SKALP) Python vol / 66
21 Pisanie po ekranie M. Alichniewicz (SKALP) Python vol / 66
22 Pisanie po ekranie Podstawowe pisanie po ekranie jest wykonywane przez funkcj - nomen omen - print: print 'Hello world!' Z C/C++ znamy te» funkcj printf: printf("wyswietl: a = %d, b = 0x%X", 10, 20); W Pythonie oczywi±cie te» wyst puje odpowiednik takiej funkcji: print 'Wyswietl: a = %d, b = 0x%X' % (10, 20) Nale»y zwóci tutaj uwag na podwójne zastosowanie operatora %. W przypadku liczb, dziaªa jako dzielenie modulo. Z kolei przy ci gach tekstowych sªu»y do formatowania. W przypadku, je»eli w ci gu który formatujemy jest tylko jedna zmienna, po operatorze % nie musi si pojawi tupla, wystarczy pojedyncza warto± / zmienna. M. Alichniewicz (SKALP) Python vol / 66
23 Pisanie po ekranie W ramach tzw. debuggowania przez wy±wietlanie (czyli wstawianie w ±rodek kodu instrukcji wy±wietlania,»eby si mniej wi cej zorientowa gdzie si program sypie), przydatne jest kilka funkcji: Funkcja repr - zwraca u»yteczn dla czªowieka reprezentacj danej zmiennej/typu/warto±ci. Czyli, np. drukuje list. a = repr # Przypisz do zmiennej a funkcje repr. # Tak, to jest poprawna konstrukcja. print repr(a) # Powinno wyswietlic cos w stylu # ``<built-in function repr>'' Funckja id - drukuje unikalny identykator obiektu (zmiennej, wartosci, etc.). Czasami ta warto± si pojawia w ci gu zwróconym przez repr: print id(repr) # Wyswietli jakas liczbe, # u kazdego inna M. Alichniewicz (SKALP) Python vol / 66
24 Pisanie po ekranie - przekazywanie zmiennych Znaj c funkcj która zwraca unikalne ID ka»dego elementu (zmiennej), mo»emy wprost zaobserwowa jedn z wªasno±ci Pythona. W Pythonie wszystko jest przekazywane przez referencj. Oznacza to,»e domy±lnie istnieje jeden unikalny obiekt danego typu, a ka»de przypisanie go do kolejnej zmiennej powoduje jedynie przekazanie referencji. Mo»na to zaobserwowa na przykªadzie: a = 123 print id(a) # Wyswietli jakas liczbe, # np b = a print id(b) # Wyswietli TO SAMO co # instrukcja wyzej M. Alichniewicz (SKALP) Python vol / 66
25 Pisanie po ekranie - przekazywanie zmiennych Bardziej obrazowy przykªad tej wªasno±ci to np. przekazanie referencji do podlisty: a = [1,2,3,[4,5]] b = a[3] print repr(b) # Wyswietli [4,5] b[0] = 123 print repr(a) # Wyswietli [1,2,3,[123,5]]! M. Alichniewicz (SKALP) Python vol / 66
26 Bloki kontrolne M. Alichniewicz (SKALP) Python vol / 66
27 Bloki kontrolne Poniewa» Python jest j zykiem który stawia na prostot i przejrzysto± kodu, ilo± instrukcji blokowych jest ograniczona. J zyk ten posiada tylko 1 konstrukcj warunkow - if... else.... Nie posiada z kolei znanej m.in. z C instrukcji switch. Liczba p tli równie» jest ograniczona - wyst puj tylko p tle for i while, brak jest znanej z innych j zyków p tli do... while. Brak te» instrukcji skoku typu label... goto. W przeciwie«stwie do wi kszo±ci znanych j zyków (które maj wspólnego przodka, j zyk ALGOL), w Pythonie nie stosuje si klamer do oznaczania bloków! Bloki oznaczamy przez wci cia - zmiana ci gªo±ci wci cia oznacza otworzenie / zako«czenie bloku (jednocze±nie wymuszaj c na u»ytkowniku przejrzysto± kodu). Python akceptuje wci cie zªo»one z 2 spacji, 4 spacji b d¹ tabulatora (zalecane s 4 spacje). Korzystaj c z wiersza polece«(konsoli) pythona (polecenie python) blok ko«czymy pust lini. M. Alichniewicz (SKALP) Python vol / 66
28 Bloki kontrolne - instrukcja warunkowa - wersja C Znana z C konstrukcja warunkowa wygl da mniej wi cej tak: if ( warunek ) { // Jakis tam kod } else if ( warunek_2 ) { // Jeszcze inny kod } else { // Nic nie wyszlo } M. Alichniewicz (SKALP) Python vol / 66
29 Bloki kontrolne - instrukcja warunkowa - wersja Python Z kolei w Pythonie to wyglada tak: if warunek: # Jakis tam kod elif warunek_2: # Jeszcze inny kod else: # Nic nie wyszlo Jak wida, w Pythonie wyst puje sªowo kluczowe elif, co jest odpowiednikiem else if z C (gdzie tak na prawd, mamy 2 zagnie»d»one warunki - w Pythonie caªy czas to jeden warunek). Instrukcj switch znan z C zbudujemy za pomoc odpowiedniej ilo±ci if... elif... else. M. Alichniewicz (SKALP) Python vol / 66
30 Bloki kontrolne - instrukcja warunkowa - warunki Par sªów na temat tworzenia warunków. Wi kszo± operatorów warunkowych jest identyczna jak w pozostaªych j zykach programowania: ==, >, <, >=, <=,!=. Jest te» jeden niewyst puj cy: Dokªadna równo±. Z racji tego,»e zmienne w Pythonie nie maj odgórnie przypisanego typu, funkcja mo»e - dla przykªadu zwróci warto± liczbow, albo False w przypadku niepowodzenia. Jak odró»ni 0 matematyczne od 0 logicznego? Do tego sªu»y sªowo kluczowe is, które sprawdza równie» typ: 1 == True # Zwroci ``True'' - 1 to 1 1 is True # Zwroci ``False'' - bo matematyczne # ``1'' to nie logiczna prawda. Podobny operator wyst puje w j zyku PHP - ===. M. Alichniewicz (SKALP) Python vol / 66
31 Bloki kontrolne - instrukcja warunkowa - warunki W Pythonie istnieje jeszcze jeden przydatny operator - sªowo kluczowe in. Pozwala ono sprawdzi, czy w kolekcji znajduje si element o danej warto±ci: a = [1,2,3] 2 in a # Da ``True'' - bo 2 jest elementem listy 5 in a # Da ``False'' - nie ma takiego elementu W przypadku sªowników, sprawdza czy dany element jest kluczem: a = {'1': 1, '2': 2} '1' in a # Da ``True'' - bo '1' jest kluczem 1 in a # Da ``False'' - nie ma takiego klucza M. Alichniewicz (SKALP) Python vol / 66
32 Bloki kontrolne - instrukcja warunkowa - warunki Š czenie warunków jest nieco odmienne od tego w C. W wi kszo±ci j zyków programowania, do tego sªu» podwojone operatory do operacji logicznych na bitach - czyli && jako i oraz jako lub. Python stawia na czytelno± - a wi c, zamiast maªo zrozumiaªych krzaków, mamy form tekstow : and oraz or. Podobnie jest z negacj : zamiast symbolu!, stosujemy sªowo kluczowe not: if warunek1 and warunek2: # Zrob cos elif not warunek1 and not warunek2: # Zrob cos innego elif warunek1 or warunek2: # Jeszcze cos innego?! else: # To cos jeszcze zostalo? Oczywi±cie, warunki mo»emy zagnie»d»a (zarówno instrukcj if, jak i sam tre± warunku). M. Alichniewicz (SKALP) Python vol / 66
33 Bloki kontrolne - instrukcja warunkowa - warunki Kilka uwag do tworzenia warunków: Je»eli chcemy sprawdzi warto± logiczn, nie musimy jej porównywa do prawdy czy faªszu, wystarczy konstrukcja typu lub if zmienna_logiczna: # Zrob cos if not zmienna_logiczna_2: # Zrob cos innego 0 w ka»dej postaci liczbowej oznacza faªsz, wszystkie inne liczby to prawda warto± None to faªsz pusta kolekcja (pusta tupla, lista, etc) a tak»e pusty ci g znaków to faªsz, wszystko inne - prawda M. Alichniewicz (SKALP) Python vol / 66
34 Bloki kontrolne - p tla while Znana z C p tla while: while (warunek) { // Zrob cos } w Pythonie przybiera posta : while warunek: # Zrob cos Tworzenie warunków jest identyczne jak w instrukcji warunkowej. Nie licz c warunku, kod wewn trz p tli mo»e zosta przerwany, a p tla zako«czona dzi ki instrukcji break, albo przerwany a nast pnie wznowiony od pocz tku (kolejna iteracja) dzi ki instrukcji continue (tu podobnie jak w C) M. Alichniewicz (SKALP) Python vol / 66
35 Bloki kontrolne - p tla for Znana z C p tla for wygl da tak (przyklad): for (i=0; i<wartosc_koncowa; i++) { // Zrob cos } Pythonowy odpowiednik tej p tli to for i in range(0,wartosc_koncowa): # Zrob cos Funkcja range ju» si nam przewin ªa w momencie omawiania list. Sk d si tu wi c wzi ªa? M. Alichniewicz (SKALP) Python vol / 66
36 Bloki kontrolne - p tla for Otó» - algorytm dziaªania p tli for w j zyku C (i pochodnych) wygl da mniej wi cej tak: 1 Zainicjuj zmienne licznika (i = 0) 2 Sprawd¹ warunek (i < wartosc_koncowa) 3 Je»eli warunek prawdziwy, wykonaj kod p tli; w przeciwnym wypadku, zako«cz p tl. 4 Wykonaj aktualizacj warto±ci zmiennych licznika (i++) 5 Wró do punktu 2. M. Alichniewicz (SKALP) Python vol / 66
37 Bloki kontrolne - p tla for A jak to wygl da w Pythonie? 1 We¹ kolejn warto± z sekwencji (kolejna warto± z listy - przykªadowo - zwróconej przez range(0,wartosc_koncowa)) 2 Je»eli si to udaªo (to nie jest koniec listy), wykonaj kod p tli; w przeciwnym wypadku, zako«cz p tl. 3 Wró do punktu 1. Jak widzicie, algorytm p tli for w Pythonie znacznie si ró»ni od tego w C. Ró»nica wynika z tego,»e p tla nazwana for w Pythonie jest dosªownie interpretowana jako dla ka»dego elementu z sekwencji, wykonaj. Jako sekwencj mo»emy poda dowoln kolekcj (tuple, list, zbiór, a tak»e ci g tekstowy). Wniosek jest jeden: p tla for w Pythonie mo»e dziaªa jak jej odpowiednik w C, ale to nie jest klasycza p tla FOR. M. Alichniewicz (SKALP) Python vol / 66
38 Bloki kontrolne - p tla for Przykªady? skladniki = ['jablko', 'banan', 'gruszka', 'pomarancza'] print 'Skladniki salatki owocowej to:' for owoc in skladniki: print owoc, ciag = 'SKALP' print 'Kolejne znaki w ciagu %s' % ciag for znak in ciag: print 'Znak: %c' % znak print 'Klasyczne for:' for i in range(0,10): print 'i wynosi: %d' % i M. Alichniewicz (SKALP) Python vol / 66
39 Funkcje M. Alichniewicz (SKALP) Python vol / 66
40 Tworzenie funkcji - wersja C Przykªadowy kod funkcji w C wygl da tak: /** * Jakis komentarz / opis do funkcji, niewymagane, * ale zalecane ze wzgledu na czytelnosc */ typ_zwracany nazwa_funkcji(typ1 zmienna1, typ2 zmienna2, typ_etc zmienna_etc) { // Jakis tam kod funkcji } return wartosc_zwracana; // Cos zwracamy M. Alichniewicz (SKALP) Python vol / 66
41 Tworzenie funkcji - wersja Python Z kolei w Pythonie, szkielet wygl da tak: def nazwa_funkcji(zmienna1, zmienna2, zmienna_etc) """ Jakis komentarz / opis do funkcji, niewymagane, ale zalecane ze wzgledu na czytelnosc """ # Jakis tam kod funkcji return wartosc_zwracana; # Cos zwracamy Jak widzimy, funcj deklarujemy sªowem kluczowym def i nie podajemy»adnych typów (mo»emy te» nic nie zwraca, odpowiednik funkcji void z C). Pami tajmy te»,»e jak wszystko w Pythonie, argumenty s przekazywane przez referencj! M. Alichniewicz (SKALP) Python vol / 66
42 Tworzenie funkcji - wersja Python Python, jako j zyk skryptowy, daje nam jeszcze jedn mo»liwo± - podanie domy±lnych warto±ci argumentów def nazwa_funkcji(zmienna1 = 1, zmienna2 = 2, zmienna_etc = 'etc') """ Jakis komentarz / opis do funkcji, niewymagane, ale zalecane ze wzgledu na czytelnosc """ # Jakis tam kod funkcji return wartosc_zwracana; # Cos zwracamy M. Alichniewicz (SKALP) Python vol / 66
43 Tworzenie funkcji - wersja Python Jaka z tego korzy±? Otó» jedn z cech odró»niaj cych Pythona od innych j zyków, jest to,»e owszem - argumenty do funkcji mo»emy podawa wg. kolejno±ci denicji, ale tak»e mo»emy przypisywa warto±ci do konkretnych argumentów: # Wywolanie klasyczne nazwa_funkcji(1, 2, 3) # Trzeci argument pozostaje domyslny nazwa_funkcji(1, 2) # Pierwsze dwa zostaja domyslne nazwa_funkcji(zmienna_etc = 'nowe etc') # Same domyslne nazwa_funkcji() M. Alichniewicz (SKALP) Python vol / 66
44 Tworzenie funkcji - wersja C, zmienna liczna argumentów W Pythonie - tym razem podobnie jak w innych j zykach - jest te» mo»liwe zdeniowanie funkcji przyjmuj cej kilka argumentów. W C, jest to troch skomplikowane: #include <stdarg.h> void vargs(int first,...) { va_list arg; // Tablica z argumentami va_start(arg, first); // Ustaw wskaznik int foo; char bar; foo = va_arg(arg, int); // Wez pierwszy (typ int) bar = va_arg(arg, char); // Wez drugi (typ char) // Zrob z tym cos } va_end(arg); // Poinformuj gdzie koniec M. Alichniewicz (SKALP) Python vol / 66
45 Tworzenie funkcji - wersja Python, zmienna liczna argumentów Jak widzimy, w C musimy te argumentu zdejmowa po kolei z listy, co nie zawsze jest wygodne tudzie» mo»liwe. Python, jak wiemy, stawia na prostot i czytelno± kodu. W zwi zu z tym, zamiast takiego potworka mamy kod: def vargs(first, *args, **kwargs): """ Zmienna liczba argumentow. ``args'' to lista na ktorej sa argumenty, dla ktorych nie podalismy nazwy - czyli wywolanie funkcja typu vargs(1, 2, 3, 4). ``kwargs'' to slownik w ktorym sa argumenty przekazane z nazwy, czyli wywolanie typu vargs(dwa = 2, piec = 5) """ pass # Nic nie rob M. Alichniewicz (SKALP) Python vol / 66
46 Tworzenie funkcji - wersja Python, zmienna liczna argumentów Jak to dziaªa mo»emy sprawdzi w prosty sposób, wykorzystuj c poznan wcze±niej funkcj repr def vargs(*args, **kwargs): """ Wyswietl argumenty """ print repr(args) print repr(kwargs) a nast pnie spróbowa wywoªa funkcj na ró»ne sposoby z ró»nymi argumentami: vargs(1, 2, 3) # Slownik kwargs bedzie pusty vargs(jeden = 1, dwa = 2) # List args bedzie pusta vargs(1, dwa = 2) # Dane beda w args i w kwargs vargs() # Lista args i slownik kwargs puste Wa»ne jest,»eby argumenty nienazwane byªy podawane PRZED tymi z konkretn nazw. M. Alichniewicz (SKALP) Python vol / 66
47 Wywoªywanie funkcji - rozpakowywanie list i sªowników Czasami sie zdarza,»e mamy kod który tworzy sªownik - tudzie» list /tupl - z argumentami dla funkcji, które wszystkie przekazujemy. Mo»emy to zrobi tradycyjnie: lista = (1,2) slownik = {'trzy': 3} vargs(lista[0], lista[1], trzy=slownik['trzy']) Mo»emy to te» przyspieszy, stosuj c rozpakowanie sekwencji: lista = (1,2) slownik = {'trzy': 3} vargs(*lista, **slownik) Jak zobaczycie, dziaªa tak samo. M. Alichniewicz (SKALP) Python vol / 66
48 Wyj tki M. Alichniewicz (SKALP) Python vol / 66
49 Czym s wyj tki? W trakcie tworzenia funcji, czasami mo»e si okaza»e dla danych argumentów nie jest mo»liwe wykonanie takiej funkcji. Oczywi±cie, na fakt»e nie zostaªo to wykonane, trzeba jako± zareagowa. Jednym ze sposób, znany z C jest zwracanie np. ujemnych warto±ci, albo kodu bª du. W Pythonie mo»na te» zwróci np. warto± False. Ale jak zidentykowa, co poszªo nie tak? Zaªó»my prost funkcj, która otwiera port szeregowy i wysyªa po nim jakie± dane. W tej funkcji mo»e wiele rzeczy pój± nie tak: Bª dna nazwa portu Port zaj ty Brak uprawnie«etc. Oczywi±cie na ka»dy z bª dów trzeba zareagowa inaczej. Mo»na zwraca ró»ne warto±ci jako wynik funkcji. M. Alichniewicz (SKALP) Python vol / 66
50 Czym s wyj tki? Jak to zrobi inaczej? Zaªó»my,»e funkcja mo»e zaraportowa wyst pienie bª du i zako«czy swoje dziaªanie. Zaªó»my te»,»e takie zgªoszenie mo»na przechwyci i wykona odpowiednie operacje naprawcze - te zaªo»enia mo»na rozwin jako system wyj tków (ang. exceptions). Brak tego mechanizmu w C, pojawiª si od C++, jest wykorzystywany m.in. w Javie i w PHP. M. Alichniewicz (SKALP) Python vol / 66
51 Wyj tki w Pythonie Najprostszym przykªadem operacji która mo»e pój± nie tak, jest dzielenie. Dzielenie przez 0 nie nale»y do cz stych, i musimy si przed nim zabezpieczy. Jak? Mo»na sprawdzi, czy nie chcemy dzieli przez 0, je»eli tak, to ko«czymy nasz funkcj / piszemy komunikat o bª dzie / etc: # Obliczamy c = a / b if b == 0: print "Nie mozna dzielic przez 0!" else: print "Wynik z dzielenia: %d" % (a / b) Co si stanie, je»eli jednak podzielimy? M. Alichniewicz (SKALP) Python vol / 66
52 Wyj tki w Pythonie Sprawd¹my: a / b # Zwroci: # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # ZeroDivisionError: integer division or modulo by zero Na ekranie widzimy bª d, a w zasadzie wªa±nie wyj tek zgªoszony (rzucony) przez Pythona. Tak samo, wyj tek zostanie zgªoszony jak b dziemy chcieli odwoªa si do nieistniej cego elementu listy: a = [1,2,3] a[4] # Zwroci: # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # IndexError: list index out of range M. Alichniewicz (SKALP) Python vol / 66
53 Wyj tki w Pythonie Zgodnie z ide wyj tków, powinni±my móc wyªapa ten bª d. Skªadnia bloków obsªugi wyj tków jest stosunkowo intuicyjna. Najprostsza jej forma to: try: # Sprobuj wykonac jakis kod ktory moze nie wyjsc # np wspomniane dzielenie przez 0 except TypWyjatku as e: # Kod, ktory zostanie wykonany jezeli wyjatek # zostanie rzucony. W ``e'' moga znajdowac sie # dodatkowe informacje na temat wyjatku except TypWyjatku2: # Mozna reagowac na kilka typow wyjatkow, # mozna tez nie odczytywac konkretnych # informacji o bledzie (tylko fakt, ze wystapil) except: # Mozemy tez nie znac typu M. Alichniewicz (SKALP) Python vol / 66
54 Wyj tki w Pythonie Zwykªa instrukcja typu try... except pozwala nam reagowa na wyj tek, którego czasami si wr cz spodziewamy. A je»eli chcemy wykona jak ± akcj jak wyj tek NIE wyst pi? Teoretycznie, mo»emy umie±ci ten kod wewn trz bloku try - wtedy, je»eli wyj tek nie wyst pi, kod si powinien wykona. Tracimy jednak na czytelno±ci kodu! Dlatego te», Python przychodzi z pomoc nieco bardziej rozbudowan instrukcj : try... except... else: try: # Proba wykonania kodu except TypWyjatku as e: # Proba sie nie powiodla else: # Proba sie powiodla, zrobmy cos dodatkowego M. Alichniewicz (SKALP) Python vol / 66
55 Wyj tki w Pythonie Czasami zdarza si,»e w bloku try alokujemy jakie± zasoby - klasycznym, wr cz akademickim przykªadem jest tutaj otwarcie pliku. Niezale»nie od tego, czy wyj tek wyst piª, czy nie, plik musimy zamkn. Mo»emy takie zamykanie pliku umie±ci albo w bloku try ORAZ w bloku except, mo»emy te» umie±ci zamykanie pliku w bloku except ORAZ w bloku else. Mo»emy te» skorzysta z dedykowanego bloku zaprojektowanego m.in. wªasnie do zwalniania zasobów - try... except... nally try: # Jakis kod w ktorym alokujemy zasoby except TypWyjatku as e: # Proba sie nie powiodla finally: # Czy sie udalo, czy nie, zwalniamy zasoby M. Alichniewicz (SKALP) Python vol / 66
56 Wyj tki w Pythonie Oczywi±cie, instrukcje else oraz nally mo»emy ze sob ª czy, co daje nam ko«cow, peªn form bloków do obsªugi wyj tków: try: # Jakis kod w ktorym alokujemy zasoby except TypWyjatku as e: # Proba sie nie powiodla else: # Proba sie jednak udala finally: # Czy sie udalo, czy nie, zwalniamy zasoby M. Alichniewicz (SKALP) Python vol / 66
57 Wyj tki w Pythonie - programowanie wyj tkami Dosy cz st praktyk w±ród programistów, jest podej±cie upewnij si trzy razy, zanim co± wykonasz -»eby nie byªo bª dów. Przykªadem takiej praktyki jest m.in. wspomniane wcze±niej sprawdzanie, czy mo»emy dzieli przez dan liczb. Python z kolei, promuje podej±cie totalnie odmienne: spróbuj co± zrobi, co najwy»ej Ci nie wyjdzie - wtedy zrób co± innego - czyli rób i ªap wyj tki. Takie podej±cie skutkuje m.in. tym,»e Python rzuca wyj tkami na przysªowiowe prawo i lewo - i czasami nie da si zastosowa pierwszego podej±cia. Przykªadowo - jak sprawdzi, czy w danym sªowniku jest element o danym indeksie/kluczu (jak by wygl daªa taka funkcja?) M. Alichniewicz (SKALP) Python vol / 66
58 Wyj tki w Pythonie - programowanie wyj tkami Mniej wi cej tak: def haskey(dict, name): """ Sprawdza, czy w slowniku `dict` istnieje klucz `name` """ try: _ = dict[name] # Pobierz wartosc # do jakiejs zmiennej except KeyError: return False else: return True # Wyjatek - a wiec klucza # nie ma # Udalo sie - wiec klucz # istnieje To podej±cie jest zastosowane nawet wewn trz wbudowanych w Pythona funkcji! M. Alichniewicz (SKALP) Python vol / 66
59 Zadania do wykonania M. Alichniewicz (SKALP) Python vol / 66
60 Zadanie 1 Napisz 2 funkcje realizuj ce silni na 2 sposoby: rekurencyjnie oraz iteracyjnie. M. Alichniewicz (SKALP) Python vol / 66
61 Zadanie 2 Napisz funkcj, która sprawdzi czy w podanej przez u»ytkownika kolekcji (lista, tupla, sªownik, tekst) istnieje element o podanym przez u»ytkownika kluczu. Funkcja powinna zwraca warto± logiczn True je»eli dany klucz istnieje, oraz logiczne False w przeciwnym wypadku. M. Alichniewicz (SKALP) Python vol / 66
62 Zadanie 3 Napisz funkcj, która stworzy list b d c sum dwóch list a i b tak,»e lista wynikowa b dzie miaªa tylko unikalne warto±ci z obu list (mo»esz zaªo»y,»e warto±ci listy a jak i b s unikalne wewn trz tych list). Obrazowo: a = suma_list([1,2,3,4], [3,4,5,6]) # a powinno wynosic [1,2,3,4,5,6] M. Alichniewicz (SKALP) Python vol / 66
63 Zadanie 4 Zaimplementuj algorytm sita Erastotenesa (wyszukiwanie liczb pierwszych z zadanego zakresu - patrz - w inny sposób ni» podany - bez usuwania elementów listy, a tworz c now ) M. Alichniewicz (SKALP) Python vol / 66
64 Materiaªy M. Alichniewicz (SKALP) Python vol / 66
65 Materiaªy Dokumentacja j zyka Python Forum StackOverow Python Enchancement Proposals M. Alichniewicz (SKALP) Python vol / 66
66 Spotkania z Pythonem Cz ± 1 - podstawy Michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. M. Alichniewicz (SKALP) Python vol / 66
Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk 2014. Studenckie Koªo Automatyków SKALP
Spotkania z Pythonem Cz ± 1 - podstawy - rozwi zania zada«michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike
1. Wprowadzenie do C/C++
Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
1. Wprowadzenie do C/C++
Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe
wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe 1 Wprowadzenie 1.1 rodowisko programistyczne NetBeans https://netbeans.org/ 1.2 Dokumentacja j zyka Java https://docs.oracle.com/javase/8/docs/api/
Przetwarzanie sygnaªów
Przetwarzanie sygnaªów Laboratorium 1 - wst p do C# Dawid Poªap Przetwarzanie sygnaªów Pa¹dziernik, 2018 1 / 17 Czego mo»na oczekiwa wzgl dem programowania w C# na tych laboratoriach? Dawid Poªap Przetwarzanie
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
Metodydowodzenia twierdzeń
1 Metodydowodzenia twierdzeń Przez zdanie rozumiemy dowolne stwierdzenie, które jest albo prawdziwe, albo faªszywe (nie mo»e by ono jednocze±nie prawdziwe i faªszywe). Tradycyjnie b dziemy u»ywali maªych
Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz
Lekcja 8 - ANIMACJA 1 Polecenia Za pomoc Baltiego mo»emy tworzy animacj, tzn. sprawia by obraz na ekranie wygl daª jakby si poruszaª. Do animowania przedmiotów i tworzenia animacji posªu» nam polecenia
ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15
ANALIZA NUMERYCZNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Metoda Eulera 3 1.1 zagadnienia brzegowe....................... 3 1.2 Zastosowanie ró»niczki...................... 4 1.3 Output do pliku
Bash i algorytmy. Elwira Wachowicz. 20 lutego
Bash i algorytmy Elwira Wachowicz elwira@ifd.uni.wroc.pl 20 lutego 2012 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Bash i algorytmy 20 lutego 2012 1 / 16 Inne przydatne polecenia Polecenie Dziaªanie Przykªad
Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.
Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach
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
Lekcja 12 - POMOCNICY
Lekcja 12 - POMOCNICY 1 Pomocnicy Pomocnicy, jak sama nazwa wskazuje, pomagaj Baltiemu w programach wykonuj c cz ± czynno±ci. S oni szczególnie pomocni, gdy chcemy ci g polece«wykona kilka razy w programie.
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,
Listy, krotki, słowniki, funkcje
Listy, krotki, słowniki, funkcje Listy Lista jest najbardziej elastycznym typem obiektu uporządkowanej kolekcji. Może zawierać różne typy danych - liczby, łańcuchy znaków, a nawet inne listy. Tworzy się
Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java
J zyk programowania JAVA c 2011 Vincent Van GOGH: M»czyzna pij cy li»ank kawy Zadanie 6. Napisz program, który tworzy tablic 30 liczb wstawia do tej tablicy liczby od 0 do 29 sumuje te elementy tablicy,
P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);
Rozdziaª 4 P tle 4.1 Wst p Niniejszy rozdziaª zawiera opis p tli w j zyku C, wraz z przykªadowymi programami oraz ich obja±nieniem. 4.2 P tle P tla to element j zyka programowania, pozwalaj cy na wielokrotne,
ZAJ CIA 4. Podstawowe informacje o algorytmie. Operatory relacyjne i logiczne, instrukcja warunkowa if
ZAJ CIA 4. Podstawowe informacje o algorytmie. Operatory relacyjne i logiczne, instrukcja warunkowa if. ALGORYTM Algorytm jest przepisem opisuj cym krok po kroku rozwi zanie problemu lub osi gni cie jakiego
Lekcja 9 - LICZBY LOSOWE, ZMIENNE
Lekcja 9 - LICZBY LOSOWE, ZMIENNE I STAŠE 1 Liczby losowe Czasami spotkamy si z tak sytuacj,»e b dziemy potrzebowa by program za nas wylosowaª jak ± liczb. U»yjemy do tego polecenia: - liczba losowa Sprawd¹my
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,
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 3 - operatory oraz instrukcje warunkowe i wyboru mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 19 października 2018 1 / 35 mgr inż. Krzysztof
Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych
1. Wstawianie skryptu na stroną: Laboratorium 1 Do umieszczenia skryptów na stronie służy znacznik: //dla HTML5 ...instrukcje skryptu //dla HTML4 ...instrukcje
Programowanie i struktury danych 1 / 44
Programowanie i struktury danych 1 / 44 Lista dwukierunkowa Lista dwukierunkowa to liniowa struktura danych skªadaj ca si z ci gu elementów, z których ka»dy pami ta swojego nast pnika i poprzednika. Operacje
Podstawy 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
Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie
Cz ± II Podziaª pracy 1 Tablica sortuj ca Kolejka priorytetowa to struktura danych udost pniaj ca operacje wstawienia warto±ci i pobrania warto±ci minimalnej. Z kolejki liczb caªkowitych, za po±rednictwem
A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.
Logika i teoria mnogo±ci, konspekt wykªad 12 Teoria mocy, cz ± II Def. 12.1 Ka»demu zbiorowi X przyporz dkowujemy oznaczany symbolem X obiekt zwany liczb kardynaln (lub moc zbioru X) w taki sposób,»e ta
Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.
Wydziaª Matematyki, Fizyki i Informatyki 10 marca 2008 Spis tre±ci Listy 1 Listy 2 3 Co to jest lista? Listy List w Mathematice jest wyra»enie oddzielone przecinkami i zamkni te w { klamrach }. Elementy
Programowanie wspóªbie»ne
1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast
Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk
Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał
Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)
Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) // to jest pojedynczy komentarz (1-linijkowy) to jest wielolinijkowy komentarz Budowa "czystego" skryptu PHP (tak
WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH
WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH Klasa: 3TIR - Technik informatyk Program: 351203 Wymiar: 4 h tygodniowo Podręcznik: Kwalifikacja E.14 Programowanie
Kurs rozszerzony języka Python
Wykład 1. 6 października 2017 Plan wykładu 1 2 3 4 Plan wykładu 1 2 3 4 Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/ marcinm/dyd/python Materiały
Lab. 02: Algorytm Schrage
Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z
Programowanie 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
Ś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
Podstawy 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
Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.
Relacje 1 Relacj n-argumentow nazywamy podzbiór ϱ X 1 X 2... X n. Je±li ϱ X Y jest relacj dwuargumentow (binarn ), to zamiast (x, y) ϱ piszemy xϱy. Relacj binarn okre±lon w zbiorze X nazywamy podzbiór
1 Bª dy i arytmetyka zmiennopozycyjna
1 Bª dy i arytmetyka zmiennopozycyjna Liczby w pami ci komputera przedstawiamy w ukªadzie dwójkowym w postaci zmiennopozycyjnej Oznacza to,»e s one postaci ±m c, 01 m < 1, c min c c max, (1) gdzie m nazywamy
Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA
Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający
1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.
1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja
Python dla początkujących. Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring
Python dla początkujących Małgorzata Niewiem AGH, GGiOŚ, Katedra Geoinformatyki i Informatyki Stosowanej SATIM Satelitarny Monitoring Wstęp Stworzony w latach 90 przez Guido van Rossum Nazwa pochodzi od
Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.
Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania
Podstawy programowania w Pythonie
Podstawy programowania w Pythonie Wykład 6 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 21 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania
Odczyt danych z klawiatury Operatory w Javie
Odczyt danych z klawiatury Operatory w Javie Operatory W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje
Podstawy 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
Spis treści. Funkcje. 1 Funkcje 1.1 Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie Zadanie 7
Spis treści 1 Funkcje 1.1 Zadanie 1 1.2 Zadanie 2 1.3 Zadanie 3 1.4 Zadanie 4 1.5 Zadanie 5 1.6 Zadanie 6 1.7 Zadanie 7 Funkcje Przy programowaniu często zdarza się, że pewne czynności chcemy wykonywać
Sposoby przekazywania parametrów w metodach.
Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych
Algorytmy zwiazane z gramatykami bezkontekstowymi
Algorytmy zwiazane z gramatykami bezkontekstowymi Rozpoznawanie j zyków bezkontekstowych Problem rozpoznawania j zyka L polega na sprawdzaniu przynale»no±ci sªowa wej±ciowego x do L. Zakªadamy,»e j zyk
Wstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego
Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 2 - organizacja projektu i obiektowo± Michaª Alichniewicz. Gda«sk 2014. Studenckie Koªo Automatyków SKALP
Spotkania z Pythonem Cz ± 2 - organizacja projektu i obiektowo± Michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike
Programowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Przegląd języka Python. Łukasz Anwajler
Przegląd języka Python Łukasz Anwajler lukasz.anwajler@pjwstk.edu.pl Nie wierzcie mi na słowo Zaraz zobaczymy: czym jest Python dlaczego warto go używać jakie ma zastosowania gdzie z niego korzystają jakzacząć
PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW
PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW http://metodycy.torun.pl/ m.informatyka@metodycy.torun.pl 1. Wprowadzenie do Pythona podstawowe informacje Python to język programowania wysokiego poziomu,
ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15
ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych
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
Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Listy i operacje pytania
Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik
x y x y x y x + y x y
Algebra logiki 1 W zbiorze {0, 1} okre±lamy dziaªania dwuargumentowe,, +, oraz dziaªanie jednoargumentowe ( ). Dziaªanie x + y nazywamy dodawaniem modulo 2, a dziaªanie x y nazywamy kresk Sheera. x x 0
ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15
ARYTMETYKA MODULARNA Grzegorz Szkibiel Wiosna 2014/15 Spis tre±ci 1 Denicja kongruencji i jej podstawowe wªasno±ci 3 2 Systemy pozycyjne 8 3 Elementy odwrotne 12 4 Pewne zastosowania elementów odwrotnych
Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.
ZESTAWY A Zestaw 1 Organizacja plików: Wszystkie pliki oddawane do sprawdzenia nale»y zapisa we wspólnym folderze o nazwie b d cej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko ¹ródªa programów
Programowanie wspóªbie»ne
1 Programowanie wspóªbie»ne wiczenia 5 monitory cz. 1 Zadanie 1: Stolik dwuosobowy raz jeszcze W systemie dziaªa N par procesów. Procesy z pary s nierozró»nialne. Ka»dy proces cyklicznie wykonuje wªasnesprawy,
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
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
Informatyka 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
Programowanie funkcyjne. Wykªad 13
Programowanie funkcyjne. Wykªad 13 Siªa wyrazu rachunku lambda Zdzisªaw Spªawski Zdzisªaw Spªawski: Programowanie funkcyjne. Wykªad 13, Siªa wyrazu rachunku lambda 1 Wst p Warto±ci logiczne Liczby naturalne
Algorytmy 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
Wska¹niki, tablice dynamiczne wielowymiarowe
Rozdziaª 11 Wska¹niki, tablice dynamiczne wielowymiarowe 11.1 Wst p Identycznie, jak w przypadku tablic statycznych, tablica dynamiczna mo»e by tablic jedno-, dwu-, trójitd. wymiarow. Tablica dynamiczna
Stuck in the loop. Sterowanie. Marcin Makowski. 29 października Zak lad Chemii Teoretycznej UJ
Sterowanie Zak lad Chemii Teoretycznej UJ 29 października 2007 1 2 3 4 arytmetyczne +, -, *, / % (dzielenie modulo) operatory sa lewostronnie l aczne priorytety: (*, /, %), (+, -) nie istnieje operator
lekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
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,
19. Obiektowo± 1 Kacze typowanie. 2 Klasy
1 Kacze typowanie 19. Obiektowo± Sk d interpreter wie, jakiego typu s np. przekazywane do metody argumenty? Tak naprawd wcale nie musi wiedzie. Do poprawnego dziaªania programu istotne jest,»e przekazywany
Warsztaty dla nauczycieli
WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne
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
Wstęp do informatyki- wykład 7
1 Wstęp do informatyki- wykład 7 Operatory przypisania, złożone operatory przypisania, Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.
Laboratorium 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
Python. Wprowadzenie. Jolanta Bachan
Python Wprowadzenie Jolanta Bachan Zainstaluj i przetestuj Pythona https://www.python.org/downloads/ print 'Hello world!' operatory numeryczne: + - * / // % ** operatory porównania: ==!= > < >=
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
Struktura pliku projektu Console Application
Struktura pliku projektu Console Application #include #include using namespace std; int main(int argc, char *argv[]) // to jest komentarz system("pause"); return EXIT_SUCCESS; Na początku
LibreOffice 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ąć
KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu
➏ Filozoa z elementami logiki Na podstawie wykªadów dra Mariusza Urba«skiego Sylogistyka Przypomnij sobie: stosunki mi dzy zakresami nazw KLASYCZNE ZDANIA KATEGORYCZNE Trzy znaczenia sªowa jest trzy rodzaje
Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH
Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania weryfikacyjne:
Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne
1 Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,
O autorze... 9 Wprowadzenie... 11
Spis tre ci O autorze... 9 Wprowadzenie... 11 Rozdzia 1. Sterownik przemys owy... 15 Sterownik S7-1200... 15 Budowa zewn trzna... 16 Budowa wewn trzna... 19 Cykl programu oraz tryby pracy... 21 Zestaw
Pętle. Dodał Administrator niedziela, 14 marzec :27
Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać
PowerShell. Sławomir Wawrzyniak 05.11.2010
PowerShell Sławomir Wawrzyniak 05.11.2010 Czym jest PowerShell - Czym jest PowerShell - Do czego może się przydać - Zalety PowerShell - Podobieństwo do basha Wprowadzenie - Jak uruchomić PowerShell - Główne
Metody dowodzenia twierdze«
Metody dowodzenia twierdze«1 Metoda indukcji matematycznej Je±li T (n) jest form zdaniow okre±lon w zbiorze liczb naturalnych, to prawdziwe jest zdanie (T (0) n N (T (n) T (n + 1))) n N T (n). 2 W przypadku
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Ję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
Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:
W pierwszym kroku nauczymy się uruchamiać w Pythonie tradycyjny* program ". Dzięki temu nauczysz się pisać w języku Python, a także zapisywać i uruchamiać swoje pythonowe programy. *Jest taka tradycja,
Wybrane poj cia i twierdzenia z wykªadu z teorii liczb
Wybrane poj cia i twierdzenia z wykªadu z teorii liczb 1. Podzielno± Przedmiotem bada«teorii liczb s wªasno±ci liczb caªkowitych. Zbiór liczb caªkowitych oznacza b dziemy symbolem Z. Zbiór liczb naturalnych
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
Języki programowania wysokiego poziomu. PHP cz.2.
Języki programowania wysokiego poziomu PHP cz.2. Instrukcje strukturalne PHP Instrukcje strukturalne Instrukcja grupująca (blok instrukcji) Instrukcja warunkowa, if-else Instrukcja wyboru, switch-case
Cw.12 JAVAScript w dokumentach HTML
Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane
Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1
Ciaªa i wielomiany 1 Ciaªa i wielomiany 1 Denicja ciaªa Niech F b dzie zbiorem, i niech + (dodawanie) oraz (mno»enie) b d dziaªaniami na zbiorze F. Denicja. Zbiór F wraz z dziaªaniami + i nazywamy ciaªem,
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia