opublikował: Nikowski, 2014-01-06
W języku Python do dyspoczycji mamy cztery typy liczbowe:
  1. zwykłe liczby całkowite,
  2. długie liczby całkowite,
  3. liczby zmiennoprzecinkowe
  4. liczby zespolone
 
Dodatkowo typ logiczny jest podtypem typu całkowitego. Liczby całkowite, int, z innych języków programowania, takich jak na przykład c, są zrealizowane z wykorzystamiem typu long, co zapewnia przynajmniej 32 bitową precyzję.
Długie liczby całkowite mają nieograniczoną precyzję. Warty odnotowania jest również fakt, że jeśli wyjdziemy poza zakres mieszczący się w zwykłej liczbie całkowitej, konwersja odbędzie się bez naszej interwencji, więc informacja nie zostanie stracona jak np. w języku C.
Liczby zmiennoprzecinkowe są zwykłym typem double z języka C, włącznie z wszystkimi błędami dokładności oraz wadami. Jego precyzja jest w pełni zależna od platformy na której działa interpreter. Jeśli potrzebujemy określonej dokładności, powinniśmy skorzystać z obiektu decimal. Obiekty Decimal pozwalają na wybranie precyzji obliczeń.
 
Liczby zespolone składają się z części rzeczywistej i części urojonej, gdzie każda jest zaimplementowana z wykorzystaniem typu double z języka C. Aby wydobyć każdą z części zespolonej 'z', należy użyć 'z.real' oraz 'z.imag'. Aby utworzyć liczbę zespoloną używamy składni 'complex(czesc_rzeczywista, czesc_urojona)'. 
 
Liczby są tworzone za pomocą literałów liczbowych (np. 2, 742, 6421) lub jako wynik funkcji wbudowanych albo operatorów. Liczb całkowity dają zazwyczaj zazwyczaj liczby całkowite, wyjątkiem od tej zasady jest liczba która się nie mieści w zwykłej liczbie całkowitej, w takim przypadku jak nietrudno się domyśleć tworzona jest długa liczba całkowita.  Liczby całkowite z dodanym na końcu 'l' lub 'L' są traktowane jako długie liczby całkowite, jednak nie poleca się korzystania małą literą 'l' ze względu na to, iż '1l' przypomina liczbę jedynaście. Literały liczb zawierające kropkę lub symbol wykładniczy dają w wyniku liczbę zmiennoprzeciwkową. Literał liczbowy zawierający na końcu 'J', bądź też 'j', skutkuje traktowaniem liczby jako liczby zespolonej z częścią rzeczywistą równą zero.
Python nie ma najmniejszych problemów z arytmetyką na różnych typach, gdy wykonujemy operację, w skład której, niezależnie od strony, wchodzą typ węższy i tryb szerszy, wynik zawsze konwertowany jest to typu szerszego. Przykład, gdy spróbujemy wykonyać 1 + 0.2 w wyniku dostaniemy 1.2, czyli jeśli wykonamy na liczbie całkowitej i zmiennoprzecinkowej operacje dodawania, dostaniemy liczbę zmiennoprzecinkową by nie utracić danych.
Zaloguj się aby dodać komentarz