Spis treści
Gython jest językiem skryptowym wykorzystywanym w systemie AdvancedMiner do przetwarzania danych, opartym na języku Python.
W tym rozdziale omówione są podstawy jeżyka Python niezbędne do pracy z systemem AdvancedMiner.
Poniższa tabela zawiera wybrane zasoby www poświęcone językowi Python.
Tabela 2.1. Zasoby sieciowe dot. języka Python
Opis | Adres |
---|---|
Strona oficjalna | http://www.python.org/doc/ |
Pełna dokumentacja | http://python.org/doc/2.1/index.html |
Samouczek | http://python.org/doc/2.1/tut/tut.html |
Opis dostępnych bibliotek | http://pydoc.org/2.1 |
Informacje o integracji Javy i Pythona | http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html |
Instrukcje w Pythonie są rozdzielane znakiem nowego wiersza. Zasięg (zmiennych) jest oznaczany wcięciem za pomocą spacji lub tabulatorów.
Komentarze w kodzie zaczynają się od znaku '#' i wszystkie znaki następujące po '#' są ignorowane przez interpreter.
Nazwy zmiennych są wrażliwe na wielkość liter i muszą się rozpoczynać od litery alfabetu angielskiego lub znaku podkreślenia ('_'). Poza pierwszym znakiem, nazwy zmiennych mogą zawierać litery alfabetu angielskiego, cyfry i znak podkreślenia.
W Pythonie typ zmiennej jest określany w momencie przypisania jej wartości i może zostać zmieniony w przypadku ponownego przypisania.
Najczęściej stosowane typy danych:
Liczby (całkowite i zmiennoprzecinkowe)
Literały łańcuchowe
Listy, czyli uporządkowane ciągi elelentów. W skryptach są zapisywane jako ciągi oddzielonych przecinkami elementów zamknięte w nawiasach kwadratowych.
Słowniki to zbiory par postaci klucz : wartość, oddzielonych przecinkami i zawartych w nawiasach klamrowych. Patrz przykład poniżej.
Przykład 2.2. Zmienne:
# Numbers print "Numbers:" a = 10 # integer number b = 1.5 # floating point number i, j, k = 1.5, 2.6, 3.7 # quick variable assignment print a print b b = 3 # b is an integer number now print b print i, j, k # Strings print "String:" str = "This is a example string" print str # lists print "Lists:" l1 = ['circle', 'triangle', 'box'] # a simple list with 3 strings l2 = [l1, 'point'] # a list containing another list and one string print l2 print l2[0] print l2[0][1] # accessing elements of a nested list print l2[1] # dictionaries print "Dictionaries:" dict = {'Mary': 'cat', 'John': 'dog', 'Bob': 'chicken'} print "Mary has a", dict['Mary']
Wynik:
Numbers: 10 1.5 3 1.5 2.6 3.7 String: This is a example string Lists: [['circle', 'triangle', 'box'], 'point'] ['circle', 'triangle', 'box'] triangle point Dictionaries: Mary has a cat
Przykład 2.3. Przypisywanie wartości:
number = 10 # a simple assignment str = 'a string' var1 = var2 = var3 = 3 var4, var5 = 4, 5 print "This is "+str print "var1 =", var1,"var2 =",var2,"var3 =",var3 print "before swap: var4=",var4,"var5=",var5 (var4, var5) = (var5, var4) # swap variables print "after swap: var4=",var4,"var5=",var5 sum = var4 + var5 print "Sum of var4 and var5 equals",sum
Output:
This is a string var1 = 3 var2 = 3 var3 = 3 before swap: var4= 4 var5= 5 after swap: var4= 5 var5= 4 Sum of var4 and var5 equals 9
Tabela 2.3. Operatory logiczne w Pythonie
W języku Pyhton są dwie stałe logiczne True i False (prawda i fałsz). Ponadto, każdy obiekt ma wartość logiczną.
Symbol | Wartość logiczna |
---|---|
negacja (not x) | True jeśli x ma wartość logiczną False, False w p.p. |
koniunkcja (x and y) | jeśli x ma wartość logiczną False to wartość logiczna x, w p.p. wartość logiczna y. |
alternatywa (x or y) | jeśli x ma wartość logiczną False to wartość logiczna y, w p.p. wartość logiczna x |
wbudowana funkcja
bool(expr) | wartość logiczna wyrażenia expr. |
None, zera liczbowe, puste literały, listy, słowniki | False |
pozostałe wartości | True |
Instrukcja if służy do warunkowego wykonywania kodu, może zawierać opcjonalne klauzulę elif i klazulę else.
Pętla while służy do powtarzania danego bloku kodu tak długo, jak długo spełniony jest podany warunek logiczny. Pętlę można opuścić za pomocą instrukcji break, a do pominięcia reszty instrukcji w bieżącej iteracji pętli służy instrukcja continue.
Pętla for iteruje po podanej liście wartości, instrukcje continue i break działają tak samo, jak w przypadku pętli while.
Za pomocą funkcji range można ad hoc wygenerować listę wartości całkowitoliczbowych z podanego przedziału. Funkcja range przyjmuje jeden, dwa lub trzy argumenty.
Składnia:
range(n) # zwraca listę liczb całkowitych from 0 to n-1 range(m, n) # zwraca listę liczb całkowitych od m do n-1 range(m, n, k) # zwraca listę liczb całkowitych od m do n-1 z odstępem k
Instrukcja pass jest używana, gdy trzeba utworzyć pusty blok kodu.
W skrypptach języka Gython obiekty pojawiają się bardzo często. Omawiamy tutaj, jak należy tworzyć obiekty i korzystać z ich atrybutów.