• Nie Znaleziono Wyników

PYTHON – PODSTAWY I STRUKTURY DANYCH

N/A
N/A
Protected

Academic year: 2021

Share "PYTHON – PODSTAWY I STRUKTURY DANYCH"

Copied!
14
0
0

Pełen tekst

(1)

PYTHON – PODSTAWY I STRUKTURY DANYCH

Instalacja

Środowisko, struktura, zastosowania, historia Typy danych i ich konwersja

Liczby Łańcuchy Listy

Krotki

Słowniki

Zbiory

(2)

Typy danych

Kategoria typu Nazwa typu Opis

None types.NoneType Obiekt None (null)

Liczby bool Boolean (True lub False)

int Liczba całkowita

long Długa liczba całkowita

float Liczba zmiennoprzecinkowa complex Liczby zespolone

Zbiory set Zbiór niezmienny

frozenset Zbiór zmienny

Sekwencje str Łańcuch znaków

unicode Łańcuch znaków UNICODE

basestring Typ bazowych wszystkich łańcuchów znaków

list Lista

tuple Krotka

xrange Sekwencja niezmienna xrange

Odwzorowania dict Słownik

Pliki file Plik

Moduły types.ModuleType Moduł

Klasy object Rodzic wszystkich klas

(3)

Weryfikacja typu

 type(x) – określa typ obiektu x

 isinstance(x,y) –czy x jest instancją typu (obiektu) y

 id(x) –adres przechowywania w pamięci x

 coerce(x,y) – wyrównianie typów x i y

(tylko dla typów liczbowych)

(4)

Funkcje konwersji typów

Funkcja Konwersja

chr() int/ long/ float/ complex -> znak o kodzie ASCII

unichr() int/ long/ float/ complex -> znak UNICODE

complex() int/ long/ float/string -> complex

ord() string -> kod ASCII znaku

float() int/ long/complex/ string -> float int() float/complex/ string -> int

str() wszystkie -> string

eval() oblicza string jeśli łańcuch jest zapisem wyrażenia algebraicznego

tuple() wszystkie -> krotka list() wszystkie -> lista long() int/ float/complex/ string -> long

(5)

Operacje na danych

liczbowych

(6)

Operacje na bitach i operacje logiczne

Operacja Wynik

x|y bitowa alternatywa x i y

x^y bitowa różnica symetryczna x i y

x&y bitowa koniunkcja x i y

x<<n przesunięcie bitowe x w lewo o n bitów x>>n przesunięcie bitowe o n bitów w prawo

~x uzupełnienie bitowe x

Operacja Wynik

x or y jeśli x jest fałszem to y w przeciwnym

przypadku x

x and y jeśli x jest fałszem to x, w

przeciwnym przypadku y

not x Jeśli x jest fałszem to True w

przeciwnym przypadku False

(7)

Operatory porównania

Operator Znaczenie

< mniejsze

<= mniejsze lub równe

> większe

>= większe lub równe

= = równe

!= różne

<> różne

is identyfikacja obiektu

is not zanegowanie identyfikacji

obiektu

(8)

Wycinanie sekwencji

(9)

Metody łańcuchów

Metody łańcuchów s.capitalize() Zamienia pierwszy znak (jak jest literą) na dużą litere

s.center(width [, pad]) Centruje łańcuch w obszarze o długości width wypełniając brakujące elementy znakami pad s.count(sub [,start [,end]]) Liczy ilość pojawień się podłańcucha sub w s

s.decode([encoding [,errors]]) dekoduje łańcuch i zwraca łańcuch Unicode s.encode([encoding [,errors]]) Zwraca zakodowaną wersję łańcucha s.endswith(suffix[,start [,end]]) Sprawdza koniec łańcucha dla przyrostka s.expandtabs([tabsize]) Zastępuje znaki tab przez spacje

s.find(sub [, start [,end]]) Znajduje pierwsze pojawienie się podłańcucha sub w łańcuchu s.index(sub [, start [,end]]) Znajduje pierwsze pojawienie się różmicy (błędu) między łańcuchami s.isalnum() Sprawdza czy wszystkie znaki są alfanumeryczne

s.isalpha() Sprawdza czy wszystkie znaki są literami s.isdigit() Sprawdza czy wszystkie znaki są cyframi

s.islower() Sprawdza czy wszystkie znaki są małymi literami s.isspace() Sprawdza czy wszystkie znaki są spacjami

s.istitle() Sprawdza czy łańcuch jest tytułem (zaczyna się od dużej litery) s.isupper() Sprawdza czy wszystkie znaki są dużymi literami

s.join(t) Łączy łańcuchy s i t

s.ljust(width [, fill]) Daje lewostronne wcięcie w s długości width.

s.lower() Zamienia litery na małe

s.lstrip([chrs]) Usuwa początkowe spacje

s.replace(old,new[,maxreplace]) Podłańcuch new zastępuje podłańcuch old w s s.rfind(sub [,start [,end]]) Znajduje ostatnie pojawienie się podłańcucha

s.rindex(sub [,start [,end]]) Znajduje miejsce ostatniego pojawienia się lub zwraca sygnalizację błędu s.rjust(width [, fill]) Prawostronne wyrównanie tekstu s w łańcuch długości width.

s.rsplit([sep [,maxsplit]]) Zamienia łańcuch na listę, sep jest znakiem, który dzieli łań- cuch na podłańcuchy, maxsplit to maksymalna liczba rozbić

s.rstrip([chrs]) Usuwa spacje z przodu i tyłu s.split([sep [,maxsplit]]) Tak jak split

s.splitlines([keepends]) Rozdziela łańcuch tak jak split gdy punktem rozdziału jest znak nowej linii s.startswith(prefix[,start

[,end]]) Sprawdza czy łańcuch zaczyna się od prefiksu prefix s.strip([chrs]) Usuwa wiodące i końcowe spacje lub znaki z chrs s.swapcase() Zamienia duże na małe litery i vice versa s.title() Zwraca wersję tytułową (z dużej litery)

s.translate(table[,deletechars]) Tłumaczy (zamienia) łańcuch używając tabeli zamiany, usuwa znaki deletechar

s.upper() Zamienia litery na duże

s.zill(width) wypełnia łańcuch zerami z lewej aż do określonej szerokości

(10)

Łańcuchy surowe i UNICODE

Znak sterujący

Interpretacja Znak

sterujący

Interpretacja

\ Kontynuacja w nowej linii \\ Kreska ukośna

\’ Pojedynczy apostrof \” Podwójny apostrof

\a Sygnał dźwiękowy \b Backspace

\e Escape \0 Null

\n Nowa linia \v Pozioma tabulacja

\t Pionowa tabulacja \r Powrót karetki

\000 Wartość ósemkowa (\000-\377) \uxxxx Znak unicode (\u0000-\uffff)

\Uxxxxxxxx Wartość Unicode (\U00000000-

\Uffffffff) N\{Nazwa} Nazwa znaku Unicode

\xhh Wartość heksadecym.(\x00-\xff)

(11)

Formatowanie łańcuchów

Konwersja Znaczenie

d,i Liczba całkowita dziesiętna lub długa ze znakiem u Liczba dziesiętna bez znaku

o Liczba ósemkowa bez znaku całkowita lub długa

x Liczba szesnastkowa bez znaku (małe litery) lub długa X Liczba szesnastkowa bez znaku (wielkie litery) lub długa e,E Liczba zmiennoprzecinkowa w formacie wykładniczym

(małe ‘e’ lub duże ‘E’) „m.dddddde±xx” lub

„m.ddddddE±xx”1

f Liczba zmiennoprzecinkowa w formacie dziesiętnym

„m.dddddd”

g,G Zastosuj konwersję „e” jeśli wykładnik jest mniejszy niż -4 lub większy od wartości precyzji, w przeciwnym wypadku zastosuj „f”

c Pojedynczy znak (liczba całkowita lub napis jednoznakowy) r Napis (konwertuje dowolny obiekt z wykorzystaniem

funkcji repr())2

s Napis (konwertuje dowolny obiekt z wykorzystaniem funkcji str())3,4

\% Brak konwersji, wynik zawiera znak „%”.

(12)

Szablony tekstów

Formatowanie łańcucha

a=u”””Drogi Panie %(nazwisko)s, proszę zapłacić

%(kwota)3.2f zł. Andrzej Krajka””

print a % {’nazwisko’: ’Kowalski’,’kwota’:200.00}

 Inne formatowanie

import string

a = string.Template(u”Drogi Panie $nazwisko, proszę zapłacić

$kwota zł. Andrzej Krajka”””)

print a.substitute({’nazwisko’: ’Kowalski’,

’przedmiot’: ’blender’, ’kwota’: „%0.2f” %

50.0})

(13)

Listy – sekwencje mutowalne

nazwiska=[”Kowalski”, ”Janowski”,

„Nowak”]

lista=[0, 2.3e-5, ”Ola”, [”string”, 2.1-3j, True ]]

lista1=(1,[2,3],(3,4),(2,),{’a’:

(1,2),2:’b’}) def f1(x):

return x+x def f2(x):

return x*x;

a=[f1,f2]

a[0](5)

(14)

Operacje na sekwencjach mutowalnych

Funkcje sekwencji

min(s) Minimalna wartość w s

max(s) Maksymalna wartość w s

Operacje dostępne na sekwencjach mutowalnych (listy)

s[i]=v Podstawienie i-tego elementu

s[i:j]=t Podstawienie elementu/ciągu za podciąg

s[i:j:k]=t Podstawienie elementu/ciągu za podcią

del s[i] Usunięcie elementu

del s[i:j] Usunięcie elementu/podciągu

del s[i:j:k] Usunięcie elementu/podciągu

Metody sekwencji mutowalnych (listy)

s.remove(x) Usuwa pierwsze pojawienie się znaków x z s s.extend(t) Rozszerza listę s przez dodanie elementów t s.sort([cmpfunc [, keyf [, reverse]]])) Sortuje elementy listy (można ustawić jako

procedurę cmpfunc - sposób porównania - funkcję zwracającą liczbę ujemną, 0 lub dodatnią). Można również jako argument podać funkcję keyf, jest to funkcja zmieniająca każdy argument przed sortowaniem (tylko do sortowania) reverse jest bitem czy w zwykłej (0) czy odwrotnej kolejności s.reverse() Zwraca elementy listy w odwrotnej kolejności

list(s) Zamienia obiekt s w listę

s.append(x) Dodaje nowy element x na końcu s

s.count(x) Zlicza pojawienia się podłańcucha x w s

s.index(x [,start [,stop]]) Zwraca najmniejszy i taki, że s[i]= =x,. start i stop to opcjonalne zaznaczenie początku i końca

przeszukiwania łańcucha

s.insert(I,x) Wstawia x w miejscu o indeksie i.

s.pop([i]) Zwraca element i i usuwa go z listy, Jeśli i jest ominięty zwraca się ostatni element

Cytaty

Powiązane dokumenty

(1) powołujemy dwa pomocnicze wskaźniki: pred ustawiamy na pusty adres, a succ na adres pierwszego węzła (head) i przechodzimy nimi w kierunku końca listy tak, aby wskaźnik pred

(2) za pomocą pary pomocniczych wskaźników pred i succ wybieramy węzeł do przeniesienia i przenosimy go do listy tymczasowej za pomocą wskaźnika mover (aktulizując wskaźniki head

● szablony pozwalają na wielokrotne wykorzystanie istniejącego kodu źródłowego struktury danych dla wielu wersji tej struktury z tym samym interfejsem, ale różnymi typami

● strumienie wejścia/wyjścia: iostream, fstream, sstream, iomanip. ●

(3) przestawiamy wskaźnik next w węźle wskazywanym przez pred (lub wskaźnik head gdy pred jest pusty) oraz wskaźnik prev w węźle wskazywanym przez succ (lub wskaźnik tail gdy

[,end]]) Sprawdza czy łańcuch zaczyna się od prefiksu prefix s.strip([chrs]) Usuwa wiodące i końcowe spacje lub znaki z chrs s.swapcase() Zamienia duże na małe litery i

Umiejętności: dziecko potrafi słuchać; tworzy zasady działania w grupie podczas wspólnej pracy; ustawia przedmioty w szeregu od najniższego do najwyższego; stosuje

Krowa – łaciate cielątko, Koza – rogate koźlątko, Owca – kudłate jagniątko, Świnka – różowe prosiątko, Kurka – pierzaste kurczątko, Gąska – puchate gąsiątko,