Dane i ich typy

Fundamentalnym elementem, którym manipuluje program jest dana w postaci — tekstu lub cyfry. Do tej pory dane, których używaliśmy to``5``(jako wynik dodawania 2 + 3) oraz ciągu znaków "Hello, World!". Często nazywa się te dane obiektami i dlatego w tym opracowaniu będą używane zamiennie.

Informacja

Również liczby 2 i 3 które są użyte w działaniu są danymi (obiektami).

Powyższe obiekty zaklasyfikowane są do różnych klas oraz typów danych: liczba 4 jest liczbą całkowitą (integer), a "Hello, World!" jest łańcuchem znaków. Programista (oraz interpreter) jest w stanie zidentyfikować stringi po cudzysłowiu, w którym jest zawarty.

Jeśli nie jesteś pewien do jakiej klasy należy dana, Python posiada funkcję type, która podaje tę informację.




(ch02_1)

Niezaskakujące jest, że string należy do klasy str, a integer do klasy int.

Informacja

Podczas wyświetlania łańcucha znaków przez funkcję print, jak ma to miejsce w 3-cim przykładzie powyżej, cudzysłów jest pomijany. Wartością stringa jest sekwencja znaków zawartych w cudzysłowiu, które jedynie służą Pythonowi do rozpoznania jego wartości.

Powłoka Python nie wymaga użycia funkcji print do pokazania na ekranie powyższych wartości. Shell wykonuje automatycznie wywołane funkcje Python, zwracając wynik. W poniższym przykładzie widoczne jest jej działanie przy próbie obliczenia wyrażenia type("Hello, World!"), Po otrzymaniu rezultatu wyświetlany jest znak zachęty w oczekiwaniu na kolejną instrukcję.

Python 3.1.2 (r312:79360M, Mar 24 2010, 01:33:18)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> type("Hello, World!")
<class 'str'>
>>> type(17)
<class 'int'>
>>> "Hello, World"
'Hello, World'
>>>

W przykładzie powyżej, próba określenia wartości łańcucha znaków “Hello, World” daje w rezultacie tekst, który zawiera.

Kontynuując rozważania na temat typów danych, liczby zawierające część całkowitą oraz ułamkową rozdzielone kropką należą do klasy liczb rzeczywistych (float). Format ich wyświetlania nosi nazwę zmienno-przecinkowego (floating point). Na tym etapie nauki, możesz traktować terminy klasy oraz typy zamiennie. W późniejszych rozdziałach, tematyka klas zostanie szerzej rozwinięta.




(ch02_2)

W jaki sposób traktować wartości jak "17" i "3.2"? Są to cyfry, ale wpisane w cydzysłów jak stringi.




(ch02_3)

To są stringi!

Stringi w Python mogą być zawarte w apostrofie ('), cudzysłowiu ("), lub w ich potrójnie formie (''' lub """)




(ch02_4)

W cudzysłowiu można umieścić tekst zawierający apostrofy np.: "Bruce's beard", a w apostrofie tekst zawierający cudzysłów, np.:'The knights who say "Ni!"'. Tekst zawarty w potrójnym apostrofie lub potrójnym cudzysłowiu nosi nazwę potrójnie znaczonego i może posiadać apostrofy i cudzysłowia.




(ch02_5)

Tekst potrójnie znaczony może rozciągać się na wiele linii:




(ch02_6)

W Python nie ma znaczenia w jaki typ ograniczenia zastosowano do stringów. Ich wartość podczas analizy programu jest identyczna, a ograniczenie nie stanowi jej części.




(ch02_7)

Programiści używający Pythona najczęściej stosują apostrofy. A co w przypadku, kiedy string również zawiera apostrof?

Wpisane dużej liczby całkowitej (integer) z uwzględnieniem przecinka do rozdziału grupy trzech cyfr np. 42,000 nie jest dopuszalne w Python. Z tym, że taki zapis oznacza zupełnie coś innego:




(ch02_8)

Wykorzystanie przecinka spowodowało, iż Python potraktował użyte dane jako dwie osobne liczby - parę wartości. Funkcja print może być użyta do wyświetlenia dowolnej liczby wartości oddzielonych od siebie przecinkami. Należy zauważyć, że w chwili wyświetlania, wartości te są oddzielone spacjami.




(ch02_8a)

Pamiętaj, aby nie umieszczać przecinka oraz spacji przy zapisie liczb całkowitych bez względu na ich rozmiar. Przypomnij sobie również poprzedni rozdział, w którym mowa była iż: języki formalne są restrykcyjne, ich notacja zwięzła i nawet najmniejsza zmiana może spowodować zmianę ich znaczenia.

Sprawdź swoją wiedzę

data-2-1: W jaki sposób mozna określić typ zmiennej?





data-2-2: Jaki jest typ danych wyrażenia ‘this is what kind of data’?





Następna część - Konwersje typów