За замовчуванням Python має наступні категорії вбудованих типів даних:

Numeric (числові) типи

Числові типи даних у Python представлені наступними класами:

  • int – містить позитивні або негативні цілі числа (без дробової частини). У Python відсутні обмеження на довжину значення цілого числа.
  • float – числа з плаваючою крапкою (тобто мають дробову частину). Тип float може бути корисним для представлення значень, які вимагають підвищеної точності, наприклад фінансових розрахунків.
  • complex – комплексне число, містить дійсну та уявну частини. Наприклад: 2+3j (де 2 дійсна частина, а 3j – уявна). Комплексні числа можуть бути корисні в наукових та інженерних розрахунках.

Приклади:

x = 2
print(type(x))  # <class 'int'>

y = 2.5
print(type(y))  # <class 'float'>

z = 100 + 3j
print(type(z))  # <class 'complex'>

Тип str (рядки)

У Python str є основним типом даних, що використовується для представлення тексту. Рядки дозволяють зберігати та маніпулювати текстовими даними, включаючи слова, речення і навіть великі масиви тексту.

Рядок – це послідовність символів Unicode, взята в одинарні ('), подвійні (") або потрійні ('''/""") лапки. Рядки є незмінними, тобто після створення вони не можуть бути змінені. При потребі змінити рядок, слід створювати новий.

Приклади:

name = 'Jhon'
print(type(name))  # <class 'str'>

full_name = "Taylor O'Connor"
print(type(full_name))  # <class 'str'>

text = '''Hello,
Jhon
'''
print(type(text))  # <class 'str'>

message = """Hello,
Taylor O'Connor
"""
print(type(message))  # <class 'str'>

Потрійні лапки можна використовувати з багаторядковими рядками. Більш докладно про роботу з рядками і форматування за посиланнями:

Sequence (послідовності)

Python має декілька вбудованих типів даних послідовностей, які дозволяють зберігати впорядковані колекції елементів. До послідовностей відносяться list, tuple, range. Ці типи даних підтримують такі операції як slices (Python – що таке зрізи) та ітерації (Що таке ітератори в Python).

list (список)

Тип даних list – це змінювана послідовність, тобто після створення списку є можливість його змінювати (додавати, видаляти або змінювати елементи). Списки є доволі універсальними і можуть містити елементи різних типів, включаючи інші списки.

Приклад:

numbers = [1, 2, 3]
print(type(numbers))  # <class 'list'>

Докладніше про списки: List (список) в Python

tuple (кортеж)

Тип даних tuple – це незмінна послідовність, тобто після свого створення кортеж надає право лише на читання, що може бути його захистом від випадкових змін.

Приклад:

user = ('John', 25, True)
print(type(user))  # <class 'tuple'>

name, age, is_active = user
print(name)  # John

Поширеним використанням tuple є зберігання пов’язаних, але незмінних даних. Докладніше про цей тип даних за посиланням: Tuple (кортеж) у Python

range (діапазон)

Тип range представляє послідовність чисел, яку можна використовувати для циклічних операцій. Об’єкт діапазону ефективно використовує пам’ять, оскільки він не зберігає числа в пам’яті, а генерує їх на льоту.

Приклади:

numbers = range(5)

print(type(numbers))  # <class 'range'>
print(list(numbers))  # [0, 1, 2, 3, 4]


for i in range(3):
    print(i, end=' ')  # 0 1 2

Докладніше про range за посиланням: Функція range в Python

Binary (бінарні) типи

У Python бінарні типи даних використовуються для зберігання послідовностей байтів. Ці типи можуть бути корисні при роботі з файлами, зображеннями або даними, що передаються мережею. Python має наступні вбудовані бінарні типи даних: bytes, bytearray та memoryview.

bytes

Тип bytes являє собою незмінну послідовність байтів. Він зазвичай використовується для операцій з двійковими даними, таких як читання або запис файлів у двійковому режимі, або передача даних через мережу.

Приклад:

data = b'text'

print(data)  # b'text'
print(type(data))  # <class 'bytes'>

У наведеному вище прикладі, b'hello' створює об’єкт bytes. Префікс b вказує, що це послідовність байтів, а не звичайний рядок.

Ще один спосіб створення об’єкту bytes, використання методу encode():

data = 'text'

byte_data = data.encode('utf-8')
print(byte_data)  # b'text'

bytearray

Тип bytearray – це змінювана версія bytes, тобто він дозволяє змінювати послідовність байтів після її створення:

data = bytearray(b'text')
print(data)  # bytearray(b'text')

data[0] = 84  # ASCII value for 'T'
print(data)  # bytearray(b'Text')

У цьому прикладі, змінна data посилається на об’єкт bytearray, вміст якого можна змінювати за допомогою індексного присвоювання, на відміну від незмінного bytes.

memoryview

Об’єкт вбудованого типу memoryview, надає доступ до пам’яті іншого бінарного об’єкта, який підтримує буферний протокол (наприклад bytes, bytearray). При цьому, memoryview маніпулює над таким об’єктом без його копіювання. Це може бути корисним при роботі з великими обсягами даних (що зберігаються наприклад у байтах, і які ефективніше обробляти частинами), оскільки дозволяє економити пам’ять та час.

Приклад:

data = bytearray(b'text')
memory_data = memoryview(data)

print(memory_data[0:1].tobytes())  # b't'

memory_data[0] = 84  # ASCII value for 'T'
print(data)  # bytearray(b'Text')

У цьому прикладі, об’єкт memoryview (змінна memory_data) надає доступ до байтів з об’єкту bytearray (змінна data), що дає змогу маніпулювати ними без потреби копіювання оригінального об’єкта. Тому зміни зроблені memoryview, відображаються у вихідному bytearray.

Тип dict

У Python dict (словник) є основним вбудованим типом відображень (mapping). Словник – це колекція пар ключ-значення, де кожен ключ має бути унікальним і незмінним, а значення можуть бути будь-якого типу. Словники ефективні для зберігання та пошуку даних, на основі унікальних ключів.

Приклад:

person = {
    'name': 'Alice',
    'age': 30,
    'job': 'Engineer'
}

print(person['name'])  # Alice
print(person.get('age'))  # 30
print(person.get('city', 'London'))  # London

У цьому прикладі, словник person зберігає інформацію про особу, та має ключі name, age та job. Значення, пов’язане з кожним ключем, можна отримати звернувшись до ключа за допомогою синтаксису квадратних дужок, або методу get.

Докладніше про цей тип даних за посиланням: Словник (dict) в Python – приклади роботи

Логічний тип bool

У Python логічний тип даних bool – представляє одне з двох можливих значень: True (істина) або False (брехня). Ці значення зазвичай використовуються в умовах, для управління потоком (логікою) виконання програми. Також bool є частиною операцій порівняння та циклів.

Приклад:

a = 10
b = 20

print(a == b)  # False
print(a < b)  # True

if not a == b:
    print('a != b')  # a != b

У прикладі вище, оператори порівняння використовуються відносно змінних a та b, результатом порівнянь є значення типу bool (True або False).

Огляд типу bool за посиланням: Python Boolean – огляд та приклади

Sets (множини)

У Python set – це колекція невпорядкованих унікальних елементів. Python надає два типи множин: set та frozenset. Множини корисні коли потрібно зберігати елементи без дублікатів, або виконувати математичні операції над колекціями елементів (такі як об’єднання, перетин, різниця, тощо).

set

Множина – це невпорядкована колекція незмінних об’єктів. При цьому самі множини є змінюваними, тобто можна додавати або видаляти елементи у set після створення. Оскільки множини невпорядковані, вони не підтримують отримання елементів по індексу або зрізи, як списки або кортежі.

Приклади:

numbers = {1, 2, 3}

print(type(numbers))  # <class 'set'>

numbers.add(4)
numbers.remove(1)
print(numbers)  # {2, 3, 4}

union_numbers = numbers.union({1, 2, 3, 4, 5})
print(union_numbers)  # {1, 2, 3, 4, 5}

Множину з елементами можна створити за допомогою фігурних дужок. Метод add() дозволяє додавати нові елементи до set, а метод remove() – видаляти. Об’єднати дві множини можна за допомогою методу union (в результуючому об’єднанні дублікати видаляються).

Докладніше про множини за посиланням: Set (множина) у Python

frozenset

frozenset – це незмінна версія звичайної множини, після створення відсутня можливість її змінювати (додавати або видаляти елементи). При цьому frozenset підтримує усі стандартні операції над множинами (такі як об’єднання, перетин, різниця, тощо).

Приклади:

numbers = frozenset([1, 2, 3])
print(type(numbers))  # <class 'frozenset'>

general_numbers = numbers.intersection(frozenset([3, 4, 5]))
print(general_numbers)  # frozenset({3})

NoneType

Єдиним представником типу даних NoneType у Python, є спеціальна константа None, що означає відсутність значення. Зазвичай її використовують для ініціалізації змінних, яким значення потрібно присвоїти пізніше. Крім того, None неявно повертається функціями, у яких відсутній оператор return.

Приклади:

n = None
print(type(n))  # <class 'NoneType'>


def func():
    pass


n = func()
print(type(n))  # <class 'NoneType'>


Мітки: