Typy danych w Pythonie

W tym samouczku dowiesz się o różnych typach danych, których możesz używać w Pythonie.

Typy danych w Pythonie

Każda wartość w Pythonie ma typ danych. Ponieważ w programowaniu w Pythonie wszystko jest obiektem, typy danych są w rzeczywistości klasami, a zmienne są instancjami (obiektami) tych klas.

W Pythonie są różne typy danych. Poniżej wymieniono niektóre z ważnych typów.

Liczby w Pythonie

Liczby całkowite, liczby zmiennoprzecinkowe i liczby zespolone należą do kategorii liczb w Pythonie. Są one zdefiniowane int, floata complexzajęcia w Pythonie.

Możemy użyć type()funkcji, aby wiedzieć, do której klasy należy zmienna lub wartość. Podobnie isinstance()funkcja służy do sprawdzania, czy obiekt należy do określonej klasy.

 a = 5 print(a, "is of type", type(a)) a = 2.0 print(a, "is of type", type(a)) a = 1+2j print(a, "is complex number?", isinstance(1+2j,complex)) 

Wynik

5 jest typu 2.0 jest typu (1 + 2j) jest liczbą zespoloną? Prawdziwe

Liczby całkowite mogą mieć dowolną długość, jest ona ograniczona jedynie dostępną pamięcią.

Liczba zmiennoprzecinkowa jest dokładna do 15 miejsc po przecinku. Liczby całkowite i zmiennoprzecinkowe są oddzielone kropkami dziesiętnymi. 1 to liczba całkowita, 1.0 to liczba zmiennoprzecinkowa.

Liczby zespolone są zapisywane w postaci, x + yjgdzie x jest częścią rzeczywistą, a y jest częścią urojoną. Oto kilka przykładów.

 >>> a = 1234567890123456789 >>> a 1234567890123456789 >>> b = 0.1234567890123456789 >>> b 0.12345678901234568 >>> c = 1+2j >>> c (1+2j) 

Zauważ, że floatzmienna b została obcięta.

Lista Pythona

Lista jest uporządkowaną sekwencją elementów. Jest to jeden z najczęściej używanych typów danych w Pythonie i jest bardzo elastyczny. Nie wszystkie pozycje na liście muszą być tego samego typu.

Zadeklarowanie listy jest dość proste. Elementy oddzielone przecinkami są umieszczone w nawiasach ( ).

 a = (1, 2.2, 'python') 

Możemy użyć operatora wycinania, ( )aby wyodrębnić element lub zakres elementów z listy. Indeks zaczyna się od 0 w Pythonie.

 a = (5,10,15,20,25,30,35,40) # a(2) = 15 print("a(2) = ", a(2)) # a(0:3) = (5, 10, 15) print("a(0:3) = ", a(0:3)) # a(5:) = (30, 35, 40) print("a(5:) = ", a(5:)) 

Wynik

 a (2) = 15 a (0: 3) = (5, 10, 15) a (5 :) = (30, 35, 40) 

Listy są zmienne, co oznacza, że ​​wartości elementów listy można zmieniać.

 a = (1, 2, 3) a(2) = 4 print(a) 

Wynik

 (1, 2, 4) 

Python Tuple

Krotka to uporządkowana sekwencja elementów, taka sama jak lista. Jedyna różnica polega na tym, że krotki są niezmienne. Raz utworzonych krotek nie można modyfikować.

Krotki są używane do ochrony danych przed zapisem i są zwykle szybsze niż listy, ponieważ nie mogą zmieniać się dynamicznie.

Jest zdefiniowany w nawiasach, ()gdzie elementy są oddzielone przecinkami.

 t = (5,'program', 1+3j) 

Możemy użyć operatora slicing ()do wyodrębnienia elementów, ale nie możemy zmienić jego wartości.

 t = (5,'program', 1+3j) # t(1) = 'program' print("t(1) = ", t(1)) # t(0:3) = (5, 'program', (1+3j)) print("t(0:3) = ", t(0:3)) # Generates error # Tuples are immutable t(0) = 10 

Wynik

 t (1) = program t (0: 3) = (5, 'program', (1 + 3j)) Traceback (ostatnie wywołanie ostatnie): Plik "test.py", wiersz 11, in t (0) = 10 TypeError: obiekt „krotka” nie obsługuje przypisywania pozycji 

Ciągi Pythona

Ciąg jest sekwencją znaków Unicode. Możemy używać pojedynczych cudzysłowów lub podwójnych cudzysłowów do reprezentowania ciągów. Ciągi wieloliniowe można oznaczać za pomocą potrójnych cudzysłowów '''lub """.

 s = "This is a string" print(s) s = '''A multiline string''' print(s) 

Wynik

 To jest łańcuch Łańcuch wielowierszowy 

Podobnie jak lista i krotka, operator wycinania ( )może być używany z łańcuchami. Jednak ciągi znaków są niezmienne.

 s = 'Hello world!' # s(4) = 'o' print("s(4) = ", s(4)) # s(6:11) = 'world' print("s(6:11) = ", s(6:11)) # Generates error # Strings are immutable in Python s(5) ='d' 

Wynik

 s (4) = os (6:11) = world Traceback (ostatnie wywołanie ostatnie): File "", wiersz 11, w TypeError: obiekt 'str' nie obsługuje przypisywania pozycji 

Zestaw Pythona

Zestaw to nieuporządkowana kolekcja unikatowych przedmiotów. Zestaw jest definiowany przez wartości oddzielone przecinkami w nawiasach klamrowych ( ). Elementy w zestawie nie są zamawiane.

 a = (5,2,3,1,4) # printing set variable print("a = ", a) # data type of variable a print(type(a)) 

Wynik

 a = (1, 2, 3, 4, 5) 

Możemy wykonywać operacje na zbiorach, takie jak suma, przecięcie na dwóch zbiorach. Zestawy mają unikalne wartości. Eliminują duplikaty.

 a = (1,2,2,3,3,3) print(a) 

Wynik

 (1, 2, 3) 

Ponieważ zbiory są kolekcjami nieuporządkowanymi, indeksowanie nie ma znaczenia. W związku z tym operator krojenia ()nie działa.

 >>> a = (1,2,3) >>> a(1) Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in TypeError: 'set' object does not support indexing 

Słownik Pythona

Słownik to nieuporządkowany zbiór par klucz-wartość.

Jest zwykle używany, gdy mamy ogromną ilość danych. Słowniki są zoptymalizowane pod kątem pobierania danych. Musimy znać klucz, aby pobrać wartość.

W Pythonie słowniki są definiowane w nawiasach klamrowych, ()a każdy element jest parą w postaci key:value. Klucz i wartość mogą być dowolnego typu.

 >>> d = (1:'value','key':2) >>> type(d) 

Używamy klucza, aby pobrać odpowiednią wartość. Ale nie na odwrót.

 d = (1:'value','key':2) print(type(d)) print("d(1) = ", d(1)); print("d('key') = ", d('key')); # Generates error print("d(2) = ", d(2)); 

Wynik

 d (1) = wartość d ('klucz') = 2 Traceback (ostatnie połączenie): Plik "", wiersz 9, w KeyError: 2 

Konwersja między typami danych

Możemy konwersji pomiędzy różnymi typami danych za pomocą różnych funkcji konwersji typu jak int(), float(), str(), itd.

 >>> float(5) 5.0 

Konwersja z float na int spowoduje obcięcie wartości (przybliżenie jej do zera).

 >>> int(10.6) 10 >>> int(-10.6) -10 

Konwersja do iz łańcucha musi zawierać zgodne wartości.

 >>> float('2.5') 2.5 >>> str(25) '25' >>> int('1p') Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in ValueError: invalid literal for int() with base 10: '1p' 

Możemy nawet zamienić jedną sekwencję na inną.

 >>> set((1,2,3)) (1, 2, 3) >>> tuple((5,6,7)) (5, 6, 7) >>> list('hello') ('h', 'e', 'l', 'l', 'o') 

Aby przekonwertować na słownik, każdy element musi być parą:

 >>> dict(((1,2),(3,4))) (1: 2, 3: 4) >>> dict(((3,26),(4,44))) (3: 26, 4: 44) 

Interesujące artykuły...