Типи даних в Python
Мова Python відноситься до мов з неявною строгою динамічною типізацією. Неявна типізація означає, що при оголошенні змінної її тип не вказується (при явній типізації тип змінної вказується обов’язково).
Для мов з динамічною типізацією тип змінної визначається безпосередньо при виконанні програми.
Для мов програмування з динамічною типізацією характерно:
- будь-яка змінна є посиланням;
- типом змінної є те, на що вона посилається;
- тип змінної може довільно змінюватися по ходу виконання коду, коли змінна починає посилатися на інший об’єкт.
Вбудовані типи даних.
Тип даних – це множина значень і операцій на цими значеннями. В Python типи даних можна розділити на вбудовані в інтерпретатор (built-in) і невбудовані, які можна використовувати при імпортуванні відповідних модулів.
До основних вбудованих типів в Python відносяться:
- None – невизначене значення змінної.
- Boolean Type – логічний тип.
- Numeric Type – числа:
- int – ціле число;
- float – число з плаваючою точкою (дійсне число);
- complex – комплексне число.
- Sequence Type – послідовності:
- list – список;
- tuple – кортеж;
- range – діапазон.
- Text Sequence Type – рядки;
- str – рядки.
- Binary Sequence Types – бінарні послідовності:
- bytes – байти;
- bytearray – масиви байт 24;
- memoryview – спеціальні об’єкти для доступу до внутрішніх даних об’єкта через protocol buffer.
- Set Types – множини:
- set – множина;
- frozenset – незмінювана множина.
- Mapping Types – словники:
- dict – словник.
Ініціалізація змінних.
Враховуючи неявну типізацію мови Python при оголошенні змінної, їй повинно бути надане значення (вона має бути ініціалізована). Щоб оголосити та ініціалізувати змінну необхідно: написати її ім’я, потім поставити оператор присвоєння (знак дорівнює) і вказати значення, з яким дана змінна буде створена.
Приклад:
- a = 10
При ініціалізації змінної на рівні інтерпретатора відбувається наступне:
- створюється цілочисельний об’єкт 10 (можна представити, що в цей момент виділяється комірка пам’яті певного об’єму і в неї записується число 10);
- за оператором присвоєння = відбувається зв’язування змінної z і цілочисельного об’єкту 10 (визначається адреса отриманого об’єкту 10, яка присвоюється змінній z, тобто в результаті змінна z посилається на об’єкт 10).
Якщо, змінній за оператором присвоєння надається будь-який вираз (a = 5 + 10), то спочатку інтерпретатор обчислює значення виразу справа (5 + 10), створює об’єкт з отриманим значенням (15), а далі аналогічно до попереднього.
Ідентифікатор та тип об’єктів.
Python є об’єктно-орієнтовною мовою програмування, тому об’єктів в мові Python багато. Спробуємо розібратися, як пов’язане поняття об’єкту із змінними та їх значеннями.
Ми вже знаємо, що при ініціалізації змінної спочатку створюється цілочисельний об’єкт. Об’єкт в даному випадку – це абстракція для подання даних певного типу, що розміщуються в пам’яті за адресом. Кожен такий об’єкт має три атрибути: адресу (ідентифікатор об’єкту), значення та тип. Ідентифікатор об’єкту – це унікальна ознака об’єкту (адреса об’єкту в пам’яті), за якою можна відрізнити один об’єкт від іншого. Ідентифікатор представляється в вигляді деякого цілочисельного значення. Щоб переглянути ідентифікатор об’єкту, на який посилається певна змінна, в мові Python є спеціальна функція id(), для визначення типу призначена функція type().
Приклад:
-
a = 10# ініціалізуємо змінну а
-
print(a)# виводимо значення змінної
-
print(id(a))# виводимо ідентифікатор об’єкту
-
print(type(a))# виводимо до якого типу даних належить об’єкт