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



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

Python. Wprowadzenie. Jolanta Bachan

Kurs rozszerzony języka Python

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

Listy, krotki, słowniki, funkcje

Wstęp do programowania

Wstęp do programowania

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

Podstawy programowania w Pythonie

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

Zaawansowany kurs języka Python

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

Programowanie obiektowe

Przegląd języka Python. Łukasz Anwajler

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Podstawy programowania w Pythonie

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

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

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

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

Kurs rozszerzony języka Python

Python wstęp. Michał Bereta

Programowanie obiektowe

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

Algorytmy i struktury danych

Mów mi Python wprowadzenie do języka Python.

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

Wstęp do programowania

Dekoratora używa się wstawiając linijkę zaczynającą się przed definicją dekorowanego obiektu (klasy czy funkcji).

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Języki skryptowe w programie Plans

Podstawy bioinformatyki 2017/18

Kurs rozszerzony języka Python

1. Indeksy/indeksowanie : Do elementów wektora, list, macierzy czy ramek, można się odwołać na kilka sposobów.

Środowisko programisty

TEI. Dr Wojciech Palubicki

KOTLIN. Język programowania dla Androida

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

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

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

Plan podstawowe operacje we/wy

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

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

Pytania dla języka Python

Zaawansowany kurs języka Python

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

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Liczby losowe i pętla while w języku Python

Funkcje i instrukcje języka JavaScript

Ćwiczenie 5. Python 3: Programowanie obiektowe i dziedziczenie

Wprowadzenie do Python

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Podstawy programowania. Python wykład 6

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

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

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

Podstawy Programowania Podstawowa składnia języka C++

Programowanie w języku Java. Kolekcje

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Wstęp do programowania

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Microsoft IT Academy kurs programowania

Algorytmy i struktury danych

Elementy metod numerycznych - zajęcia 9

Wstęp do programowania

Programowanie obiektowe

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Elementy języka Scheme

Wstęp do programowania. Różne różności

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Bloki anonimowe w PL/SQL

Platformy Programistyczne Podstawy języka Java

PROGRAMOWANIE W JĘZYKU PYTHON

LibreOffice Calc VBA

Podstawy i języki programowania

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

a) ile wynosiła populacja najbardziej i najmniej ludnego z województw (oraz jakie były ich nazwy)

SAS Podstawowe informacje przed ćwiczeniem 1

Język C++ wykład VIII

Redis, skrypty w języku Lua

Programowanie robota mobilnego E-puck w języku Python

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

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

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

KLASY, INTERFEJSY, ITP

Programowanie Komputerów

Podstawy bioinformatyki 2017/18

Umieszczanie kodu. kod skryptu

Programowanie i projektowanie obiektowe

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie


Podstawy JavaScript ćwiczenia

Podstawy programowania w Pythonie

Elementy języka Scheme

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Transkrypt:

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, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 1 / 28

Plan Przegląd podstawowych typów i konstrukcji języka przegląd kolekcji wybrane wbudowane funkcje języka generator expression sortowanie kolekcji, funkcje lambda pakiet random klasy, funkcje - podstawy moduły i paczki Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 2 / 28

interpreter interpreter pozwala na wykonanie dowolnego programu/funkcji w szczególności szybko dostępny i potężny kalkulator historia poleceń jest dostępna z wykorzystaniem strzałek ( ) interaktywne przeszukiwanie Ctrl-R auto-uzupełnianie Tab Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 3 / 28

witaj świecie każdy skrypt z rozszerzeniem.py jest modułem po dodaniu możliwości wykonywania i dopisaniu domyślnego interpretera pythona jako domyślnego programu uruchamiającego skrypt, moduł zachowuje się jak samodzielny program można ustawić dla skryptu domyślne kodowanie na utf8 witaj świecie #!/usr/bin/python # -*- coding: utf-8 -*- print witaj świecie :) Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 4 / 28

struktura kodu, wcięcia zagnieżdżanie kodu odbywa się w prosty sposób, poprzez wcięcie kodu o stałą ilość spacji #!/usr/bin/python # -*- coding: utf-8 -*- class Wciecie(object): def init (self): """ wciecie w naturalny sposób strukturyzuje kod i eliminuje zbędne klamrowe ogony } } } """ self.string = "perfect indentation" def str (self): return self.string print str(wciecie()) Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 5 / 28

zakresy widoczności zmiennych #!/usr/bin/python # -*- coding: utf-8 -*- class Scope(object): class_var = 4. # class def init (self): print globals() # prints global scope self.object_var = [] for i in xrange( int(scope.class_var) ): self.object_var.append( global_module_var )#global self.object_var.append( Scope.class_var )#class local_function_var = i # local # local function var is visible outside loop s scope print dir() # print closest relevant scope self.object_var.append( local_function_var ) global_module_var = module # global print Scope().object_var Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 6 / 28

typy proste, konwersje 1 int nieograniczony zakres int( x ) 2 float float( x ) 3 napisy napis albo to również jest napis sekwencja/lista znaków napisy nie mogą mutować, zawsze tworzony jest nowy obiekt str( x ) - obiekty przekształcane są z wykorzystaniem ich wewnętrznej funkcji str, jeśli mają ją zaimplementowaną Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 7 / 28

podstawowe instrukcje pętle while True: pass for i in xrange( size ): pass if if test_a: case_a() elif test_b: case_b() else: last_case() obsługa wyjątków try moja_funkcja( arg ): fajnie( ) except StrasznyBladError: nie_fajnie( ) Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 8 / 28

przegląd kolekcji zawartość kolekcji Kolekcje Pythona mogą zawierać wszystko, typy proste, obiekty, inne kolekcje, funkcje, klasy, metody klas, moduły... nie ma ograniczeń jeżeli chodzi o ilość poziomów zagnieżdżenia a in collection - True jeśli a znajduje się w kolekcji a not in collection - True jeśli a nie znajduje się w kolekcji Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 9 / 28

przegląd kolekcji tuple stałe, niezmienne wyliczenie a = () - puste wyliczenie, raczej nieprzydatne a = ( 4, drugi element ) b = 456, Class(), maly napis, 56. tuple( kolekcja ) indeksowane od 0, działają slice y a[0] 4 b[1 :: 2] - Class(), 56. b[1 : 1] - Class(), maly napis Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 10 / 28

przegląd kolekcji listy mutowalne, iterowalne, indeksowalne indeksowane od 0, slice y a = [] - pusta lista [4, drugielement ] [a, b, [inna, lista] list( kolekcja ) list.append( AnotherElem() ) list.extend( another list ) del[0], my list.remove( element ) - usuwanie elementu, usuwanie pierwszego wystąpienia element odpakowanie listy lista Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 11 / 28

przegląd kolekcji napisy napisy można traktować jak tuple znaków napisy są niezmienne a = ala ma kota, a[2 : 8] - a ma k str( x ) - konwertuje x do napisu konkatenacja +, jeżeli jeden z operandów nie jest napisem to konieczne jest jawne wywołanie konwersji istnieje bardzo dużo przydatnych funkcji operujących na napisach, np. split(), strip() Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 12 / 28

przegląd kolekcji słowniki słownik par klucz, wartość a = {} a = { a : 456, 676 : [1, 2, 3], {} : (2, 4)} a[key] = value - wstawianie del[key] - usuwanie for key, val in a.iteritems(): - iteracja po parach słownika odpakowanie słownika slownik set nieposortowany zbiór unikatów input = [1, 1, 5, 77] set( input ) - 1,5,77 Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 13 / 28

wybrane wbudowane funkcje języka dokumentacja Python 2.6, Built-in Functions http://docs.python.org/library/functions.html chr( x ), ord( x ) - konwersja ASCII => int i na odwrót cmp( x, y ) - komparator zwraca liczbę ujemną jeśli x < y, dodatnią jeśli x > y i 0 jeśli x jest równe y complex(), liczby zespolone enumerate( iterable ) - wyliczenie, iterator par ( pozycja, element kolekcji ) dict(iterable), list(iterable), set(iterable), tuple( iterable) - budują żądaną kolekcję przy użyciu innej kolekcji help( x ) - wypisuje wbudowaną pomoc systemu dotycząca danego obiektu id( x ), type( x ), identyfikator i typ obiektu len( x ), zwraca rozmiar obiektu Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 14 / 28

generator liczb pseudolosowych Generator zawarty jest w pakiecie random przydatne funkcje z pakietu random random - następny pseudolosowy float sample( pop, k ) - losuje podzbiór o rozmiarze k z populacji pop gauss( mu, sigma ) - rozkład Gaussa shuffle( x ) - miesza sekwencję x w miejscu randint( a, b ) - losowy int z przedziału < a, b > Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 15 / 28

sortowanie kolekcji, funkcje lambda sortowanie sorted( iterable, cmp=none, key=none, reverse=false ) - kolekcja, komparator, funkcja definiująca klucz do porównania której argumentem jest element kolekcji, porządek sortowania ciekawe HOWTO o sortowaniu http://wiki.python.org/moin/howto/sorting funkcje lambda przydatne małe, jednoliniowe funkcje a = 4,5,7 func = lambda left, right : left[0]* right[2] + left[1]*right[1] + right[0]*left[2] func( a, a ) mają zaniknąc w Pythonie 3.x Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 16 / 28

ćwiczenie sortowanie Spośród wszystkich metod obiektu typu list wybrać i posortować alfabetycznie/(względem długości) takie których nazwa jest dłuższa niż 6 znaków. Polecenie dir( obj/class/func ) zwraca całą wewnętrzną przestrzeń nazw argumentu. Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 17 / 28

sortowanie, funkcje lambda #!/usr/bin/python # -*- coding: utf-8 -*- # posortować słowa po ilości znaków w odwrotnej kolejności with open(../lorem.txt ) as f: lines = f.readlines() all_words = [] for line in lines: for word in line[:-1].split(): all_words.append( (word, len(word)) ) #odwrócenie sortowania dict_sorted_all_words = sorted( all_words, reverse=true ) # z użyciem lambdy len_sorted_all_words = sorted( all_words, lambda x, y: cmp( x[1], y[1] ), reverse = True ) # bez użycia lambdy from operator import itemgetter len_sorted_all_words = sorted( all_words, key=itemgetter(1), reverse = True Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 18 / 28

wybrane wbudowane funkcje języka min(), max(), sum() map( function, iterable ), wykonuje funkcję dla każdego elementu kolekcji filter( function, iterable ), zwraca listę elementów z kolekcji dla których funkcja zwróciła prawdę open() - podstawowa funkcja I /O range([start],stop,[step]), xrange( jw. ) - funkcje zwracające listę liczb w zadanym zakresie( xrange jest szybsza, nie generuje bowiem listy, tylko specjalny obiekt xrange/iterator) raw input() - czyta ze standardowego wejścia Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 19 / 28

wybrane wbudowane funkcje języka round() - zaokrąglanie getattr(), setattr() - pobieranie i ustawianie nazwanych atrybutów obiektów reversed() - odwrócony iterator sorted() sortowanie kolekcji slice( [start], stop, [step]) - podzbiór kolekcji, równoważne obj[a:b:c] Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 20 / 28

generator expression #!/usr/bin/python # -*- coding: utf-8 -*- """ odległość 2 punktów w przestrzeni """ dim = 17 left = [ i for i in xrange( dim ) ] right = [ (-i if i<dim/2 else i**3 ) for i in reversed( left ) ] dist = sum( (x-y)**2 for x, y in zip( left, right ) ) dist **=0.5 print distance =, dist Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 21 / 28

klasy, funkcje klasy class Example(inheritance): " class docstring " def init (self, arg1, argn ): """ docstring for constructor, self - binding to the given object of Example class, it also defines the data scope """ self.var1 = arg1 self.method( argn, self.var1 ) Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 22 / 28

klasy, funkcje funkcje, metody #!/usr/bin/python # -*- coding: utf-8 -*- def module_function( string, value = 4): """ parameter may have default value""" return str(value) +, + string class Simple(): """ docstring """ def init (self, param): """ docstring """ self.method( param ) def method( self, param ): """ self is passed, by convention, as the first arg to all class methods """ first = module_function( first ) second = module_function( second, value= not int is ok t print first, ;, second simple = Simple( param ) Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 23 / 28

klasy, funkcje funkcje, metody args_list = [ 1,2,3 ] kwargs_dict = { left :5, right :6 } def kwarg_func( left, right=768 ): print left, right, \n slownik moze dostarczac argumentow keywords po odpakowaniu kwarg_func( **kwargs_dict ) def func( normal_arg, *args, **kwargs): # zmienna liczba parametrow print zwykly argument - moze wystapic 0 lub wiecej,, normal_arg print lista argumentow,, args print slownik parametrow,, kwargs print func( jestem pierwszy, *args_list, **kwargs_dict ) np izip(*iterables) z itertools wymaga rozpakowanej listy parametrow from itertools import izip iter_list = [ xrange(10) for i in xrange(5) ] print list( izip(*iter_list) ) Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 24 / 28

klasy, funkcje funkcje, metody #!/usr/bin/python # -*- coding: utf-8 -*- funkcje mogą zwracać więcej niż jedną wartość - jako tuple def bizarre( a, b ): return a, {a:b}, b, [ b+a for k in xrange(1000) ] wynikiem jest tuple arg1, slownik, arg2, dluga_lista = bizarre( 5, 67 ) Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 25 / 28

ćwiczenie szyfr Cezara Zaimplementuj szyfr Cezara - translacja każdej litery alfabetu na inną oddaloną o stałą liczbę pozycji. Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 26 / 28

moduły i paczki moduły każdy skrypt z rozszerzeniem.py jest modułem po dodaniu możliwości wykonywania i dopisaniu domyślnego interpretera pythona jako domyślnego programu uruchamiającego skrypt, moduł zachowuje się jak samodzielny program można ustawić dla skryptu domyślne kodowanie na utf8 jeżali do skryptu dodamy instrukcję if name == main : blok ten, nie zostanie wykonany podczas importu modułu, a jedynie wówczas gdy moduł zostanie uruchomiony jako samodzielny skrypt wczytanie modułu odbywa się poprzez polecenie import można załadować wybrane elementy z przestrzeni nazw modułu from mod import klasa, pole Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 27 / 28

moduły i paczki paczki moduły mozna organizować w paczki każdy katalog zawierający pliki.py, staje się paczką jeśli umieścimy w nim pusty plik init.py Łukasz Ligowski, Sławomir Walkowiak (ICM UW) Podstawy Pythona - wprowadzenie 22 lutego 2011 28 / 28