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ę.
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.
W jaki sposób traktować wartości jak "17" i "3.2"? Są to cyfry, ale wpisane w cydzysłów jak stringi.
To są stringi!
Stringi w Python mogą być zawarte w apostrofie ('), cudzysłowiu ("), lub w ich potrójnie formie (''' lub """)
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.
Tekst potrójnie znaczony może rozciągać się na wiele linii:
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.
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:
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.
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ę