Змінний чи незмінний?
У Python типи даних поділяються на дві категорії: змінювані та незмінювані.
- Змінювані типи можуть бути змінені після створення;
- Незмінювані типи не можуть бути змінені після створення — будь-яка "зміна" створює абсолютно новий об'єкт у пам'яті.
Незмінювані типи
Такі типи, як int, float, str та tuple, є незмінюваними. Це означає, що якщо "змінити" змінну, яка містить один із цих типів, Python насправді створює новий об'єкт у пам'яті.
# Assign an integer value to var1 var1 = 40 print("var1 =", var1) # Output: var1 = 40 print("ID of var1:", id(var1)) # Shows the memory ID of the value 40 # Reassign a new integer value to var1 var1 = 50 print("var1 =", var1) # Output: var1 = 50 print("New ID of var1:", id(var1)) # Shows a different ID — it's a new object in memory
Хоча ми повторно використовуємо ту саму назву змінної (var1
), функція id()
показує, що змінна вказує на повністю новий об'єкт після переназначення. Це тому, що цілі числа є незмінними — їх не можна змінити безпосередньо.
Змінювані типи
Натомість такі типи, як list
і dict
, є змінюваними. Їх можна змінювати без створення нових об'єктів.
Swipe to start coding
Уявіть, що ви керуєте бюджетом для невеликого проєкту. Спочатку ваш доступний бюджет становить $100. Згодом ви отримуєте додаткове фінансування у розмірі $50.
Ваше завдання:
- Вивести початкове значення
project_budget
та його ідентифікатор пам’яті за допомогою функціїid()
. - Оновити значення
project_budget
, щоб відобразити загальну суму. - Вивести оновлене значення та його новий ідентифікатор.
Це допоможе вам побачити, як поводяться незмінні типи, такі як int
, при повторному присвоєнні.
Після виконання цього завдання натисніть кнопку під кодом, щоб перевірити ваше рішення.
Рішення
Дякуємо за ваш відгук!