Kurs rozszerzony języka Python

Podobne dokumenty
Listy, krotki, słowniki, funkcje

Podstawy bioinformatyki 2017/18

Programowanie w Ruby

Kurs rozszerzony języka Python

Zaawansowany kurs języka Python

Kurs rozszerzony języka Python

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

Programowanie w Ruby

Programowanie obiektowe

PROGRAMOWANIE W PYTHONIE ALGORYTMY TABLICOWE A LISTY

Zaawansowany kurs języka Python

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ ]

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

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

Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python.

Python! Lekcja 1 podstawy języka, typy danych

Przegląd języka Python. Łukasz Anwajler

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

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

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Tworzenie listy polega na podaniu jej elementów oddzielonych przecinkiem w nawiasach kwadratowych:

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

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

Programowanie w Ruby

Python. Wprowadzenie. Jolanta Bachan

Wykresy i interfejsy użytkownika

Pytania dla języka Python

Wstęp do programowania

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

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

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

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

Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej.

Wykład 4. Klasa List Kolejki Stosy Słowniki

Programowanie obiektowe

import java.util.*; public class ListExample { public static void main(string args[]) { List<String> lista1= new ArrayList<String> ();

Kurs języka Python. Wykład 13. Marcin Młotkowski. 18 stycznia Rozszerzenia Pythona w C Python/C API. 2 Osadzanie Pythona w C

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Zaawansowany kurs języka Python

Programowanie i struktury danych

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

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

Informatyka I stopień ogólnoakademicki niestacjonarne Teleinformatyka Zakład Informatyki dr inż. Adam Krechowicz mgr inż.

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

Podstawy programowania w języku C++

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Programowanie w języku Java. Kolekcje

przedmiot specjalnościowy obowiązkowy polski semestr V semestr zimowy nie

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

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk Studenckie Koªo Automatyków SKALP

Kurs rozszerzony języka Python

PARADYGMATY PROGRAMOWANIA Wykład 4

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

Kurs języka Python. Lista 1.

Programowanie obiektowe

Programowanie obiektowe

Język C++ wykład VIII

Wstęp do programowania

Microsoft IT Academy kurs programowania

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

Oracle PL/SQL. Paweł Rajba.

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Modelowanie procesów fizycznych w reaktorach jadrowych

Klasy generyczne. ZbiórLiczb. ZbiórCzegokolwiek. Zbiór

Wstęp do programowania

Podstawowe elementy języka Python III. Wykład 3. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 50 / 277

Kurs programowania. Wykład 9. Wojciech Macyna

Koło Studentów Informatyki Uniwersytetu Wrocławskiego

Kurs języka Python. Wykład 5. Marcin Młotkowski. 9 listopada Rodzaje parametrów funkcji. 2 Biblioteka Tk. 3 Układanie kontrolek w oknie

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

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

TEI. Dr Wojciech Palubicki

Administracja i programowanie pod Microsoft SQL Server 2000

Podstawy programowania w Pythonie

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

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

Informatyka 1. Przetwarzanie tekstów

Wstęp do informatyki. Python 1

Środowisko programisty

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

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Programowanie obiektowe

Platformy Programistyczne Podstawy języka Java

Programowanie, algorytmy i struktury danych

Algorytmy i Struktury Danych. Anna Paszyńska

dr inż. Jarosław Forenc

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40


Współczesne Narzędzia Obliczeniowe - Python

Podstawy programowania C. dr. Krystyna Łapin

Lista, Stos, Kolejka, Tablica Asocjacyjna

Programowanie robota mobilnego E-puck w języku Python

Podstawy programowania w Pythonie

Programowanie funkcyjne w Pythonie

Technologie cyfrowe semestr letni 2018/2019

Transkrypt:

Wykład 3. 20 października 2017

Plan wykładu 1 2 Rodzaje kolekcji Przetwarzanie kolekcji 3 4 5 i funkcje Efektywność list Koniec

Plan wykładu 1 2 Rodzaje kolekcji Przetwarzanie kolekcji 3 4 5 i funkcje Efektywność list Koniec

Import nazw import random print(random.randint(1, 10)) Wszystkie nazwy musimy poprzedzić nazwą modułu.

Import wybranych funkcji from random import random, randint print(random.random()) print(random())

Import wybranych funkcji from random import random, randint print(random.random()) print(random()) from random import * Nazw funkcji nie poprzedzamy nazwą modułu.

Jak stworzyć własny moduł random.py def random():... def randint(a, b):...

Pakiety Katalog pakiet: init.py a.py # tu jest funkcja foo() b.py # tu jest funkcja bar() import pakiet from pakiet import a from pakiet.b import bar a.foo() bar()

Plan wykładu Rodzaje kolekcji Przetwarzanie kolekcji 1 2 Rodzaje kolekcji Przetwarzanie kolekcji 3 4 5 i funkcje Efektywność list Koniec

Przykłady kolekcji Rodzaje kolekcji Przetwarzanie kolekcji : [12,3] Napisy: abc, def, Zażółć gęślą żółtą jaźń Krotki: (1, jeden, (1, 2+3j, 0x4)) Słowniki Zbiory

Krotki Rodzaje kolekcji Przetwarzanie kolekcji brown = 165, 42, 42 NavyBlue = (0,0,128) htmlcolor = { turquoise : (64,224,208), NavyBlue : NavyBlue } r, g, b = htmlcolor[ NavyBlue ]

Przypomnienie Rodzaje kolekcji Przetwarzanie kolekcji podstawienie a, b = 1, 2

Przypomnienie Rodzaje kolekcji Przetwarzanie kolekcji podstawienie (a, b)= (1, 2)

: operator zawierania Rodzaje kolekcji Przetwarzanie kolekcji in bc in abcd 4 not in [2, 3, 5, 7, 11] pi in { pi : 3.1415, e : 2.7182 }

: łączenie kolekcji Rodzaje kolekcji Przetwarzanie kolekcji + >>> [ jeden, 2, 3.0 ] + [ 0x4, 05 ] [ jeden, 2, 3.0, 4, 5] >>> ( jeden, 2, 3.0) + (0x4, 05) ( jeden, 2, 3.0, 4, 5)

Rozmiar kolekcji Rodzaje kolekcji Przetwarzanie kolekcji len len( [ jeden, 2, 3.0] ) len( { jeden : 1, dwa : 2 } ) len( (1, 2, 3) )

Odwołania do elementów kolekcji Rodzaje kolekcji Przetwarzanie kolekcji [1, 2, 3][2] = 3

Odwołania do elementów kolekcji Rodzaje kolekcji Przetwarzanie kolekcji [1, 2, 3][2] = 3 abcd [1:3] = bc

Odwołania do elementów kolekcji Rodzaje kolekcji Przetwarzanie kolekcji [1, 2, 3][2] = 3 abcd [1:3] = bc (1, 2, 3)[1:] = (2, 3)

Odwołania do elementów kolekcji Rodzaje kolekcji Przetwarzanie kolekcji [1, 2, 3][2] = 3 abcd [1:3] = bc (1, 2, 3)[1:] = (2, 3) (1,2,3)[:1] = (1, )

Odwołania do elementów kolekcji Rodzaje kolekcji Przetwarzanie kolekcji [1, 2, 3][2] = 3 abcd [1:3] = bc (1, 2, 3)[1:] = (2, 3) (1,2,3)[:1] = (1, ) Python [:-1] = Pytho

Odwołania do elementów kolekcji Rodzaje kolekcji Przetwarzanie kolekcji [1, 2, 3][2] = 3 abcd [1:3] = bc (1, 2, 3)[1:] = (2, 3) (1,2,3)[:1] = (1, ) Python [:-1] = Pytho Python [-1:] = Python [-1] = n

Slicing Rodzaje kolekcji Przetwarzanie kolekcji >>> informatyka [::3] ioak

Przetwarzanie kolekcji iteratory Rodzaje kolekcji Przetwarzanie kolekcji x = [1,2,3] y = [4,5,6] prod = 0 for i in range(len(x)): prod += x[i] * y[i]

Przetwarzanie list Rodzaje kolekcji Przetwarzanie kolekcji x = [1,2,3] y = [4,5,6] prod = 0 for i, v in enumerate(x): prod += v * y[i] print(prod)

Rodzaje kolekcji Przetwarzanie kolekcji Przetwarzanie list, inne rozwiązanie x = [1,2,3] y = [4,5,6] prod = 0 for a, b in zip(x, y): prod += a * b print(prod)

Wariacje nt. słowników Rodzaje kolekcji Przetwarzanie kolekcji Przetwarzanie słowników dict = { uno : 1, duo : 2, tre : 3 } for key, val in dict.items(): print(key, =, val)

Wariacje nt. słowników Rodzaje kolekcji Przetwarzanie kolekcji Przetwarzanie słowników dict = { uno : 1, duo : 2, tre : 3 } for key, val in dict.items(): print(key, =, val) Jeszcze inaczej for key in dict.items(): print(key, =, dict[key])

Plan wykładu 1 2 Rodzaje kolekcji Przetwarzanie kolekcji 3 4 5 i funkcje Efektywność list Koniec

Stałe napisowe Stałe Ala ma kota Ala ma kota

Stałe napisowe Stałe Ala ma kota Ala ma kota Stringi w unicde (Python 2) u Zażółć żółtą jaźń

Stałe napisowe Stałe Ala ma kota Ala ma kota Stringi w unicde (Python 2) u Zażółć żółtą jaźń Unicode (Python 2.*) len(u żółty ) == 5 len( żółty ) == 8

Stałe napisowe Stałe Ala ma kota Ala ma kota Stringi w unicde (Python 2) u Zażółć żółtą jaźń Unicode (Python 2.*) len(u żółty ) == 5 len( żółty ) == 8 Długie napisy To jest wielolinijkowy string

Napisy w Pythonie 3.* W Pythonie 3.* wszystkie napisy są w UTF-8.

Stringi Stringi są kolekcjami raw strings: r abcd\n Kontynuacja napisu: To jest bardzo\n\ długi tekst\n Mnóstwo funkcji bibliotecznych Stringi są niemutowalne, tj. abc [1] = d

Nowe typy napisowe w Pythonie 3 Niemutowalne ciągi bajtów b byte bytes([34,56,50,40])

Nowe typy napisowe w Pythonie 3 Niemutowalne ciągi bajtów b byte bytes([34,56,50,40]) Mutowalne ciągi bajtów bytearray(b byte ) bytearray([34,56,50,40])

Formatowanie stringów Operator % (Python 2.*) print "%i + %i = %i\n" % (2, 2, 2+2) dict = { dwa : 2, cztery : 4 } print "%(dwa)s + %(dwa)s = %(cztery)s\n" % dict

Formatowanie stringów Operator % (Python 2.*) print "%i + %i = %i\n" % (2, 2, 2+2) dict = { dwa : 2, cztery : 4 } print "%(dwa)s + %(dwa)s = %(cztery)s\n" % dict print("{0} + {1} = {2}\n".format(2,2,2+2)) print ("{dwa} + {dwa} = {cztery}\n".format(dwa=2, cztery=4)

Plan wykładu 1 2 Rodzaje kolekcji Przetwarzanie kolekcji 3 4 5 i funkcje Efektywność list Koniec

Operacje na listach Wymiana elementów lista = [1,2,3] lista[1] = 5 # [1, 5, 3] lista[1:] = [2,3,4] # [1,2,3,4]

Zamiana podlisty lista[zakres] = innalista 0 1... k k+1 k+2 k+3...... n-2 n-1 0 1...... l-1 l l+1 l+2... n-2 n-1

Zamiana podlisty Przykłady lista = [0,1,2,3] lista[1:3] = [ jeden ] # [0, jeden, 3] lista[1:1] = [1] # [0, 1, jeden, 3] lista[2:3] = [2] # [0, 1, 2, 3]

Zamiana podlisty Przykłady lista = [0,1,2,3] lista[1:3] = [ jeden ] # [0, jeden, 3] lista[1:1] = [1] # [0, 1, jeden, 3] lista[2:3] = [2] # [0, 1, 2, 3] Przykład ze slicingiem lista = [0, 1, 2, 3] lista[::2] = [4, 5] >>> [4, 1, 5, 3]

Dodawanie i usuwanie elementów Przykłady lista = [0, 1, 2, 3] lista[ len(lista): ] = [4, 5, 6] >>> [0, 1, 2, 3, 4, 5, 6]

Dodawanie i usuwanie elementów Przykłady lista = [0, 1, 2, 3] lista[ len(lista): ] = [4, 5, 6] >>> [0, 1, 2, 3, 4, 5, 6] lista = [0, 1, 2, 3, 4, 5] lista[4:6] = [] >>> [0, 1, 2, 3]

Instrukcja del Przykłady lista = [ żółty, zielony, czerwony, niebieski ] del lista[3] >>> [ żółty, zielony, czerwony ]

Instrukcja del Przykłady lista = [ żółty, zielony, czerwony, niebieski ] del lista[3] >>> [ żółty, zielony, czerwony ] del lista[1:] >>> [ żółty ]

del dla słowników Przykład htmlcol = { NavyBlue : (0,0,128), turquoise : (64,224,208) } del htmlcol[ turquoise ]

Operacje na listach Inne operacje append, extend, insert, remove, pop, index, count, sort, reverse

Operacje na listach Inne operacje append, extend, insert, remove, pop, index, count, sort, reverse Przykłady lista = [0, 1, 2, 3] lista.reverse() # Nie zwraca wyniku

Operacje na listach Inne operacje append, extend, insert, remove, pop, index, count, sort, reverse Przykłady lista = [0, 1, 2, 3] lista.reverse() # Nie zwraca wyniku Odwracanie listy: zwrócenie wyniku lista = [0, 1, 2, 3] reversed(lista) a # zwraca wynik a a właściwie list(reversed(lista))

Plan wykładu i funkcje Efektywność list Koniec 1 2 Rodzaje kolekcji Przetwarzanie kolekcji 3 4 5 i funkcje Efektywność list Koniec

i funkcje Efektywność list Koniec Przykład użycia funkcji def calka(f, a, b): krok, suma, x =.1, 0, a while x + krok < b: suma += f(x)*krok x += krok return suma def fun(n): return n * n print(calka(fun, 0, 5))

, cd i funkcje Efektywność list Koniec Inne przykłady def square(n): return n*n def double(n): return 2 * n funlist = [ square, double ] for f in funlist: print(f(10))

Lambda funkcje i funkcje Efektywność list Koniec double = lambda x: 2*x

Lambda funkcje i funkcje Efektywność list Koniec double = lambda x: 2*x square = lambda x: x*x

Lambda funkcje i funkcje Efektywność list Koniec double = lambda x: 2*x square = lambda x: x*x funlist = [ double, square ] print(calka(square, 0, 10))

Lambda funkcje, cd i funkcje Efektywność list Koniec funlist = [ lambda x: 2*x, lambda x: x*x ] print(calka(lambda x: x*x, 0, 10))

Dwuargumentowe funkcje lambda i funkcje Efektywność list Koniec f = lambda x, y: 2*x + y

Operacje na listach i funkcje Efektywność list Koniec Stałe lista = range(100)

Operacje na listach i funkcje Efektywność list Koniec Stałe lista = range(100) def fun(n): return n % 2 == 0

Operacje na listach i funkcje Efektywność list Koniec Stałe lista = range(100) def fun(n): return n % 2 == 0 print(filter(fun, lista))

Operacje na listach i funkcje Efektywność list Koniec Stałe lista = range(100) def fun(n): return n % 2 == 0 print(filter(fun, lista)) print(map(lambda x: 2*x, lista))

Operacje na listach i funkcje Efektywność list Koniec Stałe lista = range(100) def fun(n): return n % 2 == 0 print(filter(fun, lista)) print(map(lambda x: 2*x, lista)) print(reduce(lambda x, y: x + y, lista, 0))

Operacje na listach i funkcje Efektywność list Koniec Stałe lista = range(100) def fun(n): return n % 2 == 0 print(filter(fun, lista)) print(map(lambda x: 2*x, lista)) print(reduce(lambda x, y: x + y, lista, 0)) W przykładach tych w Pythonie 3 lepiej jest: print(list(filter(fun, lista))) print(list(map(lambda x: 2*x, lista))) print(list(reduce(lambda x, y: x + y, lista, 0)))

składane i funkcje Efektywność list Koniec Przykłady lista = range(10) [ 2 * x for x in lista ]

składane i funkcje Efektywność list Koniec Przykłady lista = range(10) [ 2 * x for x in lista ] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

składane i funkcje Efektywność list Koniec Przykłady lista = range(10) [ 2 * x for x in lista ] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] [ (x, x*x*x) for x in lista if x % 3 == 0 ]

składane i funkcje Efektywność list Koniec Przykłady lista = range(10) [ 2 * x for x in lista ] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] [ (x, x*x*x) for x in lista if x % 3 == 0 ] [(0, 0), (3, 27), (6, 216), (9, 729)]

składane, dalsze przykłady i funkcje Efektywność list Koniec Przetwarzanie list stringów lista = [ monty, python s, FlyinG, circus ]

składane, dalsze przykłady i funkcje Efektywność list Koniec Przetwarzanie list stringów lista = [ monty, python s, FlyinG, circus ] lista = [ e[0].upper() + e[1:].lower() for e in lista ]

składane zagnieżdżone i funkcje Efektywność list Koniec Kolejne potęgi dwójki a = [1, 8, 64] b = [1, 2, 3] print [ x << y for x in a for y in b]

Uzupełnienie listy i funkcje Efektywność list Koniec Implementacja list Wektor wskaźników Złożoność operacji Czas dostępu: O(1) Wstawianie/usuwanie elementów: na końcu: zamortyzowany czas O(1) poza tym: O(n) Specjalizowane listy Na przykład collections.deque; wstawianie i usuwanie z obu końców: O(1)

Koniec ev