Funkcje ze standardowych bibliotek Gython-a

W tym podrozdziale są opisane wybrane standardowe biblioteki języka Gython: builtin, string, math, random i datetime. Funkcje opisane tutaj są domyślnie dostępne dla skryptów Gythona i nie ma potrzeby importowania odpowiednich modułów. Zob. także dokumentacj bibliotek Pythona 2.1: http://python.org/doc/2.1/lib/lib.html).

Wbudowane funkcje

Tabela 2.7. Wbydowane funkcje języka Gython. Zob. także Built-in Functions.

Nazwa funkcjiSkładniaOpis
__import__
__import__(name[, globals[, locals[, fromlist]]])
Za pomocą tej funkcji można zaimportować moduł Gythona, w tym także taki którego nazwa jest określana dopiero w trakcie wykonywania skryptu.
abs
abs(x)
Zwraca wartość bezwzględną liczby całkowitej lub zmiennoprzecinkowej, lub oblicza moduł liczby zespolonej.
apply
apply(function, args[, keywords])
Wywołuje obiekt wykonywalny function przekazując elementy listy args jako argumenty pozycyjne i, opcjonalnie, wpisy ze słownika keywords jako argumenty przekazywane według nazwy.
buffer
buffer(object[, offset[, size]])
Tworzy wskaźnik (obiekt typu buffer) do obiektu object wskazujący na początek obiektu lub przesunięty o offset, opcjonalnie o długości size.
callable
callable(object)
Zwraca True jeżeli object jest wywoływalny.
chr
chr(i)
Zwraca literał składający się z jednego znaku o podanym kodzie ASCII i.
cmp
cmp(x, y)
Porównuje obiekty x i y i zwraca wartość ujemną, jeżeli x < y, zero jeżeli x = y i wartość dodatnią jeżeli x > y.
coerce
coerce(x, y)
Zwraca parę składającą się z dwóch liczbowych elementów zamienionych na wspólny typ liczbowy.
compile
compile(string, filename, kind)
Kompiluje podany literał łańcuchowy string lub skrypt w pliku filename, zwracając obiekt kodu. Jeżeli kod do skompilowania jest podany w argumencie string, jako filename należy podać '<string>'. Argument kind określa rodzaj kodu: 'exec' - ciąg instrukcji, 'eval' - jedno wyrażenie, 'single' - jedno interaktywne polecenie.
complex
complex(real[, imag])
Tworzy liczbę zespoloną real + imag*j.
delattr
delattr(object, name)
Kasuje atrybut obiektu object o nazwie name (nazwa atrybutu powinna być literałem).
dir
dir([object])
Bez argumentów zwraca listę nazw w bieżącej tabeli symboli, z argumentem zwraca listę atrybutów podanego obiektu.
divmod
divmod(a, b)
Zwraca iloraz i resztę z dzielenia a przez b.
eval
eval(expression[, globals[, locals]])
Wykonuje kod zawarty w literale expression przy uwzględnieniu wartości zmiennych globalnych i lokalnych podanych w słownikach globals i locals.
execfile
execfile(file[, globals[, locals]])
Wykonuje kod zawarty w pliku file przy uwzględnieniu wartości zmiennych globalnych i lokalnych podanych w słownikach globals i locals.
filter
filter(function, list)
Zwraca listę tych elementów listy list, dla których funkcja function zwraca True. Jeśli jako function poda się None, zwróci listę elementów o wartości logicznej True.
float
float(x)
Zwraca literał łańcuchowy lub liczbę zamienione na liczbę zmiennoprzecinkową.
getattr
getattr(object, name[, default])
Zwraca wartość atrybutu name obiektu object, lub default, jeśli obiekt nie ma atrybutu o podanej nazwie (nazwa atrybutu powinna być literałem).
globals
globals()
Zwraca słownik z zawartością bieżącej tablicy symboli globalnych.
hasattr
hasattr(object, name)
Zwraca True jeśli obiekt object posiada atrybut o nazwie name (nazwa atrybutu powinna być literałem).
hash
hash(object)
Zwraca skróconą (zmieszaną) wartość dla obiektu object.
hex
hex(x)
Zwraca liczbę całkowitą x w postaci literału heksadecymalnego. Wynik może być wykorzystywany do budowy innych wyrażeń.
id
id(object)
Zwraca tożsamość obiektu object, czyli liczbę całkowitą, która jednoznacznie identyfikuje dany obiekt w czasie jego istnienia.
input
input([prompt])
Działa tak samo, jak eval(raw_input(prompt)).
int
int(x[, radix])
Zamienia literał łańcuchowy lub zmienną liczbową na liczbę całkowitą, stosując radix jako podstawę. Jeżeli radix jest 0, próbuje odgadnąć podstawę z postaci liczby.
intern
intern(string)
Dodaje literał string do listy zinternalizowanych literałów. Dzięki temu można przyspieszyć sprawdzanie wpisów w słownikach.
isinstance
isinstance(object, class)
Zwraca True jeżeli obiekt object jest instancją klasy class, lub jeżeli class określa typ obiektu.
issubclass
issubclass(class1, class2)
Zwraca True jeżeli klasa class1 jest pośrednią lub bezpośrednią podklasą klasy class2.
len
len(s)
Zwraca liczbę elementów obiektu s, który może być ciągiem (literałem, krótką lub listą) lub słownikiem.
list
list(sequence)
Zwraca listę o elementach podanych w ciągu sequence.
locals
locals()
Zwraca słownik reprezentujący bieżące tablicę symboli lokalnych.
long
long(x[, radix])
Zamienia literał lub zmienną liczbową na liczbę całkowitą typu long, stosując radix jako podstawę. Jeżeli radix jest 0, próbuje odgadnąć podstawę z postaci liczby.
map
map(function, list, ...)
Stosuje funkcję function do każdego elementu z listy i zwraca listę wyników. Jeżeli jako arumenty podane zostanie kilka list, funkcja function musi przyjmować tyle argumentów, ile podano list i zwracana jest lista wartośćdomyślie funkcji dla kolejnych zestawów argumentów, po jednym z każdej listy. Brakujące argumenty (ze zbyt krótkich list) są zastępowane przez None.
max
max(s[, args...])
Jeżeli argumentem jest jeden ciąg, zwraca jego największy element. Jeżeli argumenty to kilka wartości, zwraca największą z nich.
min
min(s[, args...])
Jeżeli argumentem jest jeden ciąg, zwraca jego najmniejszy element. Jeżeli argumenty to kilka wartości, zwraca najmniejszą z nich.
oct
oct(x)
Zamienia liczbę całkowitą x na literał z jej reprezentacją o podstawie 8.
open
open(filename[, mode[, bufsize]])
Zwraca obiekt plikowy umożliwiający dostęp do pliku o nazwie filename; mode oznacza tryb dostępu: 'r' - odczyt, 'w' - zapis, 'a' - zapisywanie do końca pliku, 'r+' - odczyt i zapis, strumień na początku pliku, 'w+' - odczyt i zapis, istniejąca zawartość pliku jest kasowana, 'a+' - odczyt i zapis, strumień na końcu pliku; Aby otworzyć plik binarny (a nie tekstowy), do mode należy dołączyć znak 'b'. Domyślna wartość mode to r. Opcjonalny argument bufsize określa bufor dla danego pliku: wartości ujemne - bufor domyślny dla danego systemu, 0 - brak bufora, 1 - bufor wierszowy, inne wartości dodatnie określają przybliżony rozmiar bufora.
ord
ord(c)
Zwraca kod ASCII jednoznakowego literału lub znaku Unicode.
pow
pow(x, y[, z])
Zwraca x do potęgi y (modulo z).
range
range([start,] stop[, step])
Zwraca listę, której elementy to kolejne wyrazy ciągu arytmetycznego od start (domyślnie 0), mniejsze od stop, oddalone od siebie o step. Wszystkie argumenty muszą być liczbami całkowitymi.
raw_input
raw_input([prompt])
Jeżeli podany jest argument prompt, zostanie wysłany do stdout (domyślnie konsola). Funkcja zwraca wiersz odczytany ze stdin (domyślnie klawiatura) i zwraca go w postaci literału łańcuchowego.
reduce
reduce(function, sequence[, initializer])
Za pomocą funkcji dwuargumentowej function redukuje ciąg sequence do jednego elementu. Opcjonalny argument initializer jest dodawany na początku ciągu i zwracany w sytuacji, gdy ciąg jest pusty.
reload
reload(module)
Ponownie ładuje moduł module, np. po tym, jak został on zmieniony.
repr
repr(object)
Zwraca literał zawierający reprezentację obiektu.
round
round(x[, n])
Zwraca liczbę zmiennoprzecinkową uzyskaną przez zaokrąglenie x do n miejsc po przecinku.
setattr
setattr(object, name, value)
Przypisuje wartość value atrybutowi o nazwie name obiektu object.
slice
slice([start,] stop[, step])
Zwraca obiekt typu slice, zawierający indeksy określone przez range(start, stop, step).
str
str(object)
Zwraca literał łańcuchowy z drukowalną reprezentacją obiektu.
tuple
tuple(sequence)
Zwraca krotkę zawierającą takie same elementy jak ciąg sequence.
type
type(object)
Zwraca typ obiektu.
unichr
unichr(i)
Zwraca literał Unicode składający się ze znaku o podanym kodzie Unicode.
unicode
unicode(string[, encoding[, errors]])
Dekoduje literał string zgodnie z kodowanie encoding (domyślnie 'UTF-8).
vars
vars([object])
Bez podania argumentu zwraca słownik odpowiadający bieżącej tablicy symboli lokalnych. Jeżeli argument jest modułem, klasą lub instancją klasy, lub jakimkolwiek elementem posiadającym atrybut __dict__, zwraca słownik odpowiadający tablicy symboli argumentu.
xrange
xrange([start,] stop[, step])
Funkcja ta jest podobna do range(), z tą różnicą, że zwraca obiekt typu xrange, który generuje te same liczby, co lista, ale liczby te nie są wszystkie jednocześnie przechowywane w pamięci.
zip
zip(seq1, ...)
Zwraca listę krótek, z których n-ta zawiera kolejno n-te elementy z ciągów podanych jako argumenty. Zwracana lista ma długość najkrótszego argumentu.

Funkcje działające na literałach łańcuchowych

Tabela 2.8. Funckje z modułu string. Zob. także String - common string operations

Nazwa funkcjiSkładniaOpis
capitalize
capitalize(word)
Zamienia pierwszą literę łańcucha word na wielką literę.
capwords
capwords(s)
Zamienia na wielkie pierwsze litery słów w literale s.
expandtabs
expandtabs(s[, tabsize])
Zamienie tabulatory na jedną lub więcej spacji tak, aby wyrównać do najbliższej wielokrotności tabsize.
find
find(s, sub[, start[,end]])
Zwraca pierwszą pozycję w łańcuchu s, od której zaczyna się podłańcuch sub. Zakres przeszukiwania można ograniczyć do pozycji od start (do end).
rfind
rfind(s, sub[, start[,end]])
Zwraca najwyższą (ostatnią) pozycję w łańcuchu s, od której zaczyna się podłańcuch sub. Zakres przeszukiwania można ograniczyć do pozycji od start (do end).
index
index(s, sub[, start[,end]])
Działa podobnie jak find, ale zwraca błąd ValueError jeśli nie uda się znaleźć podłańcucha.
rindex
rindex(s, sub[, start[,end]])
Działa podobnie jak rfind, ale zwraca błąd ValueError jeśli nie uda się znaleźć podłańcucha.
count
count(s, sub[, start[, end]])
Zwraca liczbę wystąpień literału sub w s (pomiędzy pozycjami start i end).
lower
lower(s)
Zwraca kopię oryginalnego literału s, w którym wszystkie wielkie litery alfabetu zastąpiono małymi.
maketrans
maketrans(from, to)
Zwraca tabelę odpowiedników, którą można podać jako argument dla funkcji translate() lub regex.compile(), które zamienią każdy znak w literał from na znak występujące na tej samej pozycji w literale to. Oba argumenty muszą mieć taką samą długość.
split
split(s[, sep[, maxsplit]])
Zwraca listę zawierającą kolejne łańcuchy otrzymane z podzielenia literału s łańcuchem sep. Jeżeli sep ma wartość None, to do podziały dokonywane są przez każdy ciąg białych znaków. Parametr maxsplit określa, ile podziałów (od lewej) należy maksymalnie wykonać. Domyślna wartość -1 oznacza brak ograniczenia na liczbę podziałów.
splitfields
splitfields(s[, sep[, maxsplit]])
Działa tak samo jak split()
join
join(words[, sep])
Zwraca literał powstały przez połączenie literałów w ciągu words literałem sep (domyślnie '').
joinfields
joinfields(words[, sep])
Działa tak samo jak join().
lstrip
lstrip(s)
Zwraca kopię literału s, w którym usunięto wszystkie białe znaki z początku.
rstrip
rstrip(s)
Zwraca kopię literału s, w którym usunięto wszystkie białe znaki z końca.
strip
strip(s)
Zwraca kopię literału s, w którym usunięto wszystkie białe znaki z początku i końca.
swapcase
swapcase(s)
Zwraca kopię literału s, w której wielkie litery zamienione zostały na małe, a małe na wielkie.
translate
translate(s, table[, deletechars])
Zwraca kopię literału s, w której wszystkie znaki z łańcucha deletechars zostały usunięte, a pozostałe są zamieniane na znaki z argumentu table, który musi być literałem łańcuchowym o długości 256.
upper
upper(s)
Zwraca kopię literału s, w której wszystkie małe litery zamienione zostały na wielkie.
ljust
ljust(s, width)
Zwraca literał długości width, w którym literał s został wyrównany do lewego brzegu, lub kopię s, jeżeli ma długość większą niż width.
rjust
rjust(s, width)
Zwraca łańcuch długości width zawierający literał s wyrównany do prawej, lub jego kopię, jeżeli jego długość przekracza wartość parametru width.
center
center(s, width)
Zwraca literał długości width, zawierający wyśrodkowaną kopię literału s. Jeżeli s jest za długi, zostanie skopiowany w całości, bez wyśrodkowywania.
zfill
zfill(s, width)
Zwraca kopię literału s, w której z lewej dopisano tyle zer, aby całość miała długość width. Jeżeli s zaczyna się od znaku, to zera zostaną wstawione zaraz po nim.
replace
replace(s, old, new[, maxsplit])
Zwraca kopię literału s, w której pierwsze maxsplit wystąpienia literału old zastąpione zostały literałem new. Jeśli maxsplit jest równe -1 (wartość domyślna), to zastąpione zostaną wszystkie wystąpienia old.

Funkcje matematyczne

Tabela 2.9. Funkcje z modułu math. Zob. także Math - mathematical functions.

Nazwa funkcjaSkładniaOpis
acos
acos(x)
Zwraca arcus cosinus x.
asin
asin(x)
Zwraca arcus sinus x.
atan
atan(x)
Zwraca arcus tangens x.
atan2
atan2(x, y)
Zwraca arcus tangens x / y.
ceil
ceil(x)
Zwraca sufit x jako liczbę zmiennoprzecinkową.
cos
cos(x)
Zwraca cosinus x.
cosh
cosh(x)
Zwraca cosinus hiperboliczny x.
exp
exp(x)
Zwraca eksponentę x.
fabs
fabs(x)
Zwraca wartość bezwzględną x.
floor
floor(x)
Zwraca podłogę x jako liczbę zmiennoprzecinkową.
fmod
fmod(x)
Zwraca resztę z dzielenia x przez y jako liczbę zmiennoprzecinkową.
frexp
frexp(x)
Zwraca parę (m, e) jako mantysę (typu float) o podstawie 2 i cechę (typu int) liczby x.
hypot
hypot(x, y)
Zwraca sqrt(x*x + y*y).
ldexp
ldexp(x, i)
Zwraca x * (2**i).
log
log(x)
Zwraca logarytm naturalny x.
log10
log10(x)
Zwraca logarytm dziesiętny x.
modf
modf(x)
Zwraca część całkowitą i ułamkową liczby x jako parę liczb zmiennoprzecinkowych; obie wartości mają taki sam znak jak x.
pow
pow(x, y)
Zwraca x**y.
sin
sin(x)
Zwraca sinus x.
sinh
sinh(x)
Zwraca sinus hiperboliczny x.
sqrt
sqrt(x)
Zwraca pierwiastek kwadratowy x.
tan
tan(x)
Zwraca tangens x.
tanh
tanh(x)
Zwraca tangens hiperboliczny x.

Funkcje pseudolosowe

Tabela 2.10. Funkcje z modułu random. Zob. także Random - Generate pseudo-random numbers.

Nazwa funkcjiSkładniaOpis
seed
seed([x])
Inicjuje generator liczb losowych; x może być dowolnym obiektem, dla którego można wyznaczyć hash(x). Domyślnie używany jest aktualny czas systemowy.
getstate
getstae()
Zwraca obiekt opisujący aktualny stan generatora liczb losowych, który później można podać jako argument dla setstate().
setstate
setstate(state)
Zmienia aktualny stan generatora liczb losowych na opisany przez state.
jumpahead
jumpahead(n)
Zmienia wewntrny stan generatora liczb losowych tak samo, jak n-krotne wywołanie funkcji random().
randrange
randrange([start, ]stop[, step])
Zwraca losowo wybraną liczbę losową spośród range([start, ]stop[, step]).
choice
choice(seq)
Zwraca element wybrany losowo spośrod wyrazów ciągu seq.
shuffle
shuffle(seq[, rand])
Losowo zmienia kolejność elementów w ciągu seq. Opcjonalny argument rand może być funkcją zwracającą liczby zmiennoprzecinkowe z przedziału [0, 1); domyślnie jest to random().
random
random()
Zwraca liczę losową z przedziału [0, 1) z rozkładem jednostajnym.
uniform
uniform(a, b)
Zwraca losową liczbę rzeczywistą u taką, że a <= u < b z rozkładem jednostajnym.
betavariate
betavariate(alpha, beta)
Zwraca liczbę losową pomiędzy 0 i 1 z rozkładem Beta z parametrami alpha > -1 i beta > -1.
cunifvariate
cunifvariate(mean, arc)
Zwraca losową miarę kątową (wyrażoną w radianach) z przedziału kątowego długości arc i środku mean. Oba arguementy należy wyrazić w radianach.
gamma
gamma(alpha, beta)
Zwraca liczbę losową z rozkładem Gamma z parametrami alpha > -1 i beta > 0.
gauss
gauss(mu, sigma)
Zwraca liczbę losową z rozkładem gaussowskim (normalnym) o średniej mu i odchyleniu standardowym sigma.
lognormvariate
lognormvariate(mu, sigma)
Zwraca liczbę losową z rozkładem log-normalnym (normalnym) o średniej mu i odchyleniu standardowym sigma.
normalvariate
normalvariate(mu, sigma)
Zwraca liczbę losową z rozkładem gaussowskim (normalnym) o średniej mu i odchyleniu standardowym sigma.
vonmisesvariate
vonmisesvariate(mu, kappa)
Zwraca losowy kąt z rozkładem Von Mises-a, gdzie mu to średni kąt (pomiędzy 0 i 2*pi) a kappa to parametr koncentracji. Dla kappa = 0rozkład jest jednostajny.
paretovariate
paretovariate(alpha)
Zwraca liczbę losową o rozkładzie Pareto z parametrem kształtu alpha.
weibullvariate
weibullvariate(alpha, beta)
Zwraca liczbę losową o rozkładzie Weibull-a z parametrem skali alpha i parametrem kształtu beta.

Obiekty date i time

Tabela 2.11. Obiekty typów date i time objects. Zob. także Datetime - Basic date and time types .

Typ obiektuSkładniaOpis
date
date(year, month, day)
Zwraca obiekt date przechowujący datę.
time
time(hour, minute, second, microsecond)
Zwraca obiekt time przechowujący czas.
datetime
datetime(year, month, day,
                                hour, minute, second, microsecond)
Zwraca obiekt datetime przechowujący datę i czas.
timedelta
timedelta(days, seconds, microseconds,
                                milliseconds, minutes, hours, weeks)
Zwraca obiekt timedelta.

Kilka przykładów prostych operacji na datach i czasach:

Przykład 2.15. Przesuwanie czasu i daty

date1 = date(2009, 4, 11)
shift1 = timedelta(5,45,600,12,33,7,1)                     # 1 week and 5 days later
print date1 + shift1

date2 = date(2008, 12, 22)
shift2 = timedelta(days = -8)                              # 8 days earlier
print date2 + shift2

date3 = datetime(2009, 4, 21)
shift3 = timedelta(days = 3, weeks = 2, hours = 4)         # 2 weeks and 3 days and 4 hours later
print date3 + shift3
    

Wynik:

2009-04-23
2008-12-14
2009-05-08 04:00:00
    

Przykład 2.16. Odejmowanie czasów i dat

date1= date(2009, 4, 11)
date2 = date(2008, 11, 18)
print date1 - date2                 # timedelta is output
print (date1 - date2).days          # the difference may be counted in days
    

Wynik:

144 days, 0:00:00
144
    

Przykład 2.17. Dodatkowe metody czasów i dat

print date(2000,2,9).today()                            # dzisiaj
print date(2009, 4, 11).weekday()                       # tdzień tygodnia (0 = Pn, ..., 6 = Niedz)
print date(2009, 9,22).isocalendar()                    # rok, tydzień, dzień tygodnia
    

Wynik:

2009-09-22
5.0
(2009, 39.0, 2.0)