В този урок ще научите за различни типове данни, които можете да използвате в Python.
Типове данни в Python
Всяка стойност в Python има тип данни. Тъй като всичко е обект в програмирането на Python, типовете данни всъщност са класове и променливите са екземпляр (обект) на тези класове.
В Python има различни типове данни. Някои от важните типове са изброени по-долу.
Числа на Python
Цели числа, числа с плаваща запетая и комплексни числа попадат в категорията числа на Python. Те са определени като int
, float
и complex
класове в Python.
Можем да използваме type()
функцията, за да знаем към кой клас принадлежи променлива или стойност. По същия начин isinstance()
функцията се използва за проверка дали даден обект принадлежи към определен клас.
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))
Изход
5 е от тип 2.0 е от тип (1 + 2j) е комплексно число? Вярно
Целите числа могат да бъдат с всякаква дължина, тя е ограничена само от наличната памет.
Числото с плаваща запетая е точно до 15 знака след десетичната запетая. Цялото число и плаващите точки се разделят с десетични точки. 1 е цяло число, 1.0 е число с плаваща запетая.
Комплексните числа се записват във формата, x + yj
където x е реалната част, а y е въображаемата част. Ето няколко примера.
>>> a = 1234567890123456789 >>> a 1234567890123456789 >>> b = 0.1234567890123456789 >>> b 0.12345678901234568 >>> c = 1+2j >>> c (1+2j)
Забележете, че float
променливата b е съкратена.
Списък на Python
Списъкът е подредена последователност от елементи. Това е един от най-използваните типове данни в Python и е много гъвкав. Не е необходимо всички елементи в списъка да бъдат от един и същи тип.
Декларирането на списък е доста директно. Елементите, разделени със запетаи, са затворени в скоби ( )
.
a = (1, 2.2, 'python')
Можем да използваме оператора ( )
за нарязване, за да извлечем елемент или набор от елементи от списък. Индексът започва от 0 в Python.
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:))
Изход
a (2) = 15 a (0: 3) = (5, 10, 15) a (5 :) = (30, 35, 40)
Списъците са променливи, което означава, че стойността на елементи от списък може да бъде променена.
a = (1, 2, 3) a(2) = 4 print(a)
Изход
(1, 2, 4)
Python Tuple
Tuple е подредена последователност от елементи, същата като списък. Единствената разлика е, че кортежите са неизменни. Веднъж създадени кортежи не могат да бъдат модифицирани.
Кортините се използват за защита на данните и обикновено са по-бързи от списъците, тъй като не могат да се променят динамично.
Определя се в скоби, ()
където елементите са разделени със запетаи.
t = (5,'program', 1+3j)
Можем да използваме оператора ()
за нарязване за извличане на елементи, но не можем да променим стойността му.
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
Изход
t (1) = програма t (0: 3) = (5, „програма“, (1 + 3j)) Проследяване (последно последно обаждане): Файл „test.py“, ред 11, в t (0) = 10 TypeError: обектът „кортеж“ не поддържа присвояване на елементи
Струнове на Python
String е последователност от Unicode символи. Можем да използваме единични кавички или двойни кавички, за да представим низове. Многоредови низове могат да бъдат обозначени с тройни кавички '''
или """
.
s = "This is a string" print(s) s = '''A multiline string''' print(s)
Изход
Това е низ Многоредов низ
Точно като списък и кортеж, операторът за нарязване ( )
може да се използва с низове. Струните обаче са неизменни.
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'
Изход
s (4) = os (6:11) = световно проследяване (последно последно обаждане): Файл "", ред 11, в TypeError: обектът "str" не поддържа присвояване на елемент
Python Set
Комплектът е неподредена колекция от уникални предмети. Set се дефинира от стойности, разделени със запетая в скоби ( )
. Артикулите в комплект не се поръчват.
a = (5,2,3,1,4) # printing set variable print("a = ", a) # data type of variable a print(type(a))
Изход
a = (1, 2, 3, 4, 5)
Можем да изпълняваме множество операции като обединение, пресичане на два множества. Комплектите имат уникални стойности. Те премахват дубликатите.
a = (1,2,2,3,3,3) print(a)
Изход
(1, 2, 3)
Тъй като множеството е неподредено събиране, индексирането няма значение. Следователно операторът за нарязване ()
не работи.
>>> 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
Речник на Python
Речникът е неподредена колекция от двойки ключ-стойност.
Обикновено се използва, когато разполагаме с огромно количество данни. Речниците са оптимизирани за извличане на данни. Трябва да знаем ключа за извличане на стойността.
В Python речниците се дефинират в скоби, ()
като всеки елемент е чифт във формата key:value
. Ключът и стойността могат да бъдат от всякакъв тип.
>>> d = (1:'value','key':2) >>> type(d)
Използваме ключ за извличане на съответната стойност. Но не и обратното.
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));
Изход
d (1) = стойност d ('ключ') = 2 Проследяване (последно последно обаждане): Файл "", ред 9, в KeyError: 2
Преобразуване между типове данни
Ние можем да конвертирате между различните типове данни, като използвате различни функции тип преобразуване като int()
, float()
, str()
, и т.н.
>>> float(5) 5.0
Преобразуването от float в int ще отсече стойността (ще я направи по-близо до нула).
>>> int(10.6) 10 >>> int(-10.6) -10
Преобразуването към и от низ трябва да съдържа съвместими стойности.
>>> 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'
Можем дори да преобразуваме една последователност в друга.
>>> set((1,2,3)) (1, 2, 3) >>> tuple((5,6,7)) (5, 6, 7) >>> list('hello') ('h', 'e', 'l', 'l', 'o')
За да конвертирате в речник, всеки елемент трябва да е чифт:
>>> dict(((1,2),(3,4))) (1: 2, 3: 4) >>> dict(((3,26),(4,44))) (3: 26, 4: 44)