← Back to course

Змінні та типи даних

Змінні та типи даних

Повертаємось до Python.

У попередній лекції ти встановив Python, відкрив термінал, створив свій перший .py файл і використав print().

Дуже добре.

Ти сказав Python:

print("Hello, World!")

І Python послухався.

Прекрасний початок.

Але тепер нам потрібно щось корисніше.

Виводити текст — це добре.

Але справжні програми мають запам’ятовувати речі.

Імена.

Вік.

Ціни.

Бали.

Імена користувачів.

Шляхи до файлів.

Інформацію про те, чи щось є правдою або неправдою.

І тут на сцену виходять змінні.

Змінні дозволяють програмі зберігати значення й використовувати їх пізніше.

Без змінних твоя програма мала б пам’ять золотої рибки після оновлення системи.

Не ідеально.

Що ти вивчиш

У цій лекції ти вивчиш:

До кінця цієї лекції ти зрозумієш, як Python зберігає базову інформацію.

Це величезний крок.

Бо коли програма може запам’ятовувати значення, вона починає робити корисні речі.

Маленька пам’ять.

Велика сила.

Дуже Python.

Що таке змінна?

Змінна — це назва, яка зберігає значення.

Приклад:

name = "Anna"

Тут:

name

це змінна.

А:

"Anna"

це значення.

Символ = означає:

збережи це значення під цією назвою

Тобто цей рядок означає:

Збережи "Anna" у змінній з назвою name.

Тепер Python пам’ятає, що name означає "Anna".

Дуже корисно.

Дуже просто.

Дуже небезпечно, якщо назвати все thing.

Твоя перша змінна

Створи файл:

variables.py

Напиши:

name = "Anna"

print(name)

Запусти:

python variables.py

або:

python3 variables.py

Output:

Anna

Python не друкує слово name.

Він друкує значення, яке збережене всередині name.

У цьому й сенс змінних.

Змінна — як етикетка на коробці.

Значення — це те, що лежить у коробці.

Дуже організовано.

Дуже корисно.

На відміну від деяких реальних шухляд у реальних домах.

Змінні можуть зберігати різні значення

Можна створити більше змінних:

name = "Anna"
age = 25
city = "Rome"

print(name)
print(age)
print(city)

Output:

Anna
25
Rome

Тут ми зберігаємо:

Python пам’ятає кожне значення.

Потім print() їх показує.

Твоя програма вже не просто кричить фіксований текст.

Тепер вона може зберігати інформацію.

З’явився маленький мозок.

Поважай його.

Зміна значення змінної

Змінна може змінюватися.

Приклад:

name = "Anna"
print(name)

name = "Marco"
print(name)

Output:

Anna
Marco

Спочатку name зберігає "Anna".

Потім ми замінюємо це значення на "Marco".

Старе значення зникає з цієї змінної.

Python не стає емоційним.

Він не каже:

Але Anna була тут першою.

Він просто оновлює значення.

Дуже холодно.

Дуже ефективно.

Дуже комп’ютерно.

Порядок має значення

Python виконує код зверху вниз.

Приклад:

name = "Anna"
print(name)

name = "Sofia"
print(name)

Output:

Anna
Sofia

Під час першого print(name) значення — "Anna".

Під час другого print(name) значення — "Sofia".

Python не дивиться в майбутнє.

Він виконує код рядок за рядком.

Як дуже слухняний поїзд.

Зазвичай за розкладом.

Поки твій код не зійде з рейок.

Рядки

Рядок — це текст.

Рядки пишуться в лапках.

Приклад:

name = "Anna"
city = "Rome"
message = "I am learning Python"

Можна їх вивести:

print(name)
print(city)
print(message)

Output:

Anna
Rome
I am learning Python

Рядки можуть використовувати подвійні лапки:

name = "Anna"

Або одинарні лапки:

name = 'Anna'

Обидва варіанти працюють.

Але не змішуй їх.

Неправильно:

name = "Anna'

Python поскаржиться.

І цього разу Python має рацію.

Лапки мають збігатися.

Рядок — як валіза.

Якщо відкрити її одним замком, а закривати іншим, починається хаос.

Рядки можуть містити пробіли

Рядки можуть містити пробіли:

full_name = "Anna Rossi"
message = "Python is very useful"

print(full_name)
print(message)

Output:

Anna Rossi
Python is very useful

Усе, що знаходиться всередині лапок, є частиною рядка.

Пробіли також.

Python не видаляє пробіли, бо раптом захотів порядку.

Python зберігає те, що ти написав.

Дуже буквально.

Дуже вірно.

Іноді занадто вірно.

Числа: integers

Integer — це ціле число.

Приклад:

age = 25
year = 2026
quantity = 10

Цілим числам не потрібні лапки.

Правильно:

age = 25

А це вже інше:

age = "25"

Перше — число.

Друге — текст.

Люди бачать обидва як 25.

Python бачить дві різні речі.

Python не вражений візуальною схожістю.

Python хоче типи.

Маленький строгий бухгалтер.

Числа: float

Float — це число з десятковою частиною.

Приклад:

price = 19.99
temperature = 21.5
height = 1.75

Float корисні для цін, вимірів, середніх значень і багатьох інших речей.

Приклад:

price = 19.99

print(price)

Output:

19.99

Важлива деталь:

price = 19.99

використовує крапку.

Не кому.

Правильно:

price = 19.99

Неправильно:

price = 19,99

У Python десяткові числа використовують крапку.

Кома має інші значення.

Python не хвилює, що у твоїй країні ціни можуть писатися інакше.

Python має свої правила на кухні.

Boolean

Boolean — це значення, яке може бути:

True

або:

False

Приклад:

is_student = True
is_admin = False

print(is_student)
print(is_admin)

Output:

True
False

Boolean дуже корисні для рішень.

Приклади ідей:

Користувач увійшов у систему?
Файл доступний?
Пароль правильний?
Товар є в наявності?

Boolean прості.

Але потужні.

Як вимикач світла.

Увімкнено.

Вимкнено.

Без філософської дискусії.

True і False мають бути з великої літери

У Python boolean пишуться так:

True
False

Неправильно:

true
false

Python не зрозуміє їх як boolean.

Python є case-sensitive.

Це означає, що великі й малі літери мають значення.

Це різні речі:

True
true
TRUE

Правильно тільки:

True

Те саме з:

False

Python ввічливий.

Але тут він не приймає творчу орфографію.

Перевірка типів через type()

Python може сказати, який тип має значення.

Використовуй type().

Приклад:

name = "Anna"
age = 25
price = 19.99
is_student = True

print(type(name))
print(type(age))
print(type(price))
print(type(is_student))

Output:

<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>

Це означає:

str    рядок
int    ціле число
float  десяткове число
bool   boolean

type() корисний, коли ти не впевнений, який тип має значення.

Дуже корисно під час debugging.

А debugging — це детективна робота з більшою кількістю кави.

Чотири базові типи даних

Поки що запам’ятай ці чотири:

str    текст
int    ціле число
float  десяткове число
bool   True або False

Приклади:

name = "Anna"        # str
age = 25             # int
price = 19.99        # float
is_active = True     # bool

Ці типи даних всюди.

Ти використовуватимеш їх постійно.

Вони як базові інгредієнти Python-кухні.

Текст.

Числа.

Десяткові числа.

Правда.

Дивний рецепт.

Але працює.

Виведення тексту і змінних разом

Можна виводити текст і змінні разом, використовуючи коми:

name = "Anna"
age = 25

print("Name:", name)
print("Age:", age)

Output:

Name: Anna
Age: 25

Це просто й корисно.

print() може приймати кілька значень, розділених комами.

Python автоматично додає пробіли між ними.

Дуже мило.

Як для нього.

Використання f-strings

Дуже поширений спосіб поєднувати текст і змінні — це f-string.

Приклад:

name = "Anna"
age = 25

print(f"My name is {name}.")
print(f"I am {age} years old.")

Output:

My name is Anna.
I am 25 years old.

Літера f перед лапками означає:

Цей рядок може містити змінні всередині фігурних дужок.

Приклад:

f"My name is {name}"

Python замінює:

{name}

на значення змінної.

f-strings дуже корисні.

Дуже читабельні.

Дуже Python.

Використовуй їх часто.

Майбутній ти схвалить.

Прості обчислення зі змінними

Змінні можна використовувати в обчисленнях.

Приклад:

price = 10
quantity = 3

total = price * quantity

print(total)

Output:

30

Тут Python обчислює:

10 * 3

і зберігає результат у:

total

Потім ми виводимо total.

Дуже корисно.

Це початок справжньої програмної логіки.

Маленький магазин.

Маленьке обчислення.

Велика ідея.

Більше прикладів обчислень

Спробуй:

a = 10
b = 5

print(a + b)
print(a - b)
print(a * b)
print(a / b)

Output:

15
5
50
2.0

Можна також зберігати результати:

a = 10
b = 5

sum_result = a + b
difference = a - b
product = a * b
division = a / b

print(sum_result)
print(difference)
print(product)
print(division)

Це зрозуміліше, коли програми ростуть.

Зрозумілі назви мають значення.

Бо майбутній ти не хоче розгадувати загадку під назвою:

x = a * b

Майбутній ти вже достатньо страждав.

Оновлення числа

Можна оновити змінну, використовуючи її старе значення.

Приклад:

score = 10
score = score + 5

print(score)

Output:

15

Це означає:

Візьми старе значення score.
Додай 5.
Збережи нове значення назад у score.

Це дуже поширено.

Спочатку може виглядати дивно.

У математиці це було б дивно.

У програмуванні це нормально.

Символ = у Python означає присвоєння.

Не “дорівнює назавжди”.

А:

поклади це значення в цю змінну

Дуже важливо.

Коротший синтаксис оновлення

Python має коротший спосіб:

score = 10
score += 5

print(score)

Output:

15

Це:

score += 5

означає:

score = score + 5

Можна також використовувати:

score -= 2
score *= 3
score /= 2

Поки що не хвилюйся надто сильно.

Просто знай, що такий синтаксис існує.

Python-розробники часто його використовують.

Бо, очевидно, економія кількох символів дає нам відчуття сили.

Правила назв змінних

Назви змінних мають дотримуватися правил.

Хороші назви:

name = "Anna"
user_age = 25
product_price = 19.99
is_active = True

Правила:

Неправильно:

2name = "Anna"
user age = 25
product-price = 19.99

Це не працюватиме.

Назви змінних у Python мають бути валідними.

Python тут не гнучкий.

Навіть якщо попросити дуже ввічливо.

Використовуй зрозумілі назви

Погано:

x = "Anna"
y = 25
z = 19.99

Краще:

name = "Anna"
age = 25
price = 19.99

Зрозумілі назви роблять код легшим для розуміння.

Це важливіше, ніж думають початківці.

Програму частіше читають, ніж пишуть.

Особливо ти сам.

Опівночі.

Коли вже забув, що написав.

Тому не карай майбутнього себе.

Використовуй хороші назви.

Snake case

У Python назви змінних зазвичай використовують snake_case.

Приклад:

first_name = "Anna"
last_name = "Rossi"
user_age = 25
product_price = 19.99

Snake case означає:

малі літери, розділені underscores

Ось так:

very_clear_variable_name

Це називається snake_case, бо виглядає як змія.

Дуже організована змія.

Оскільки ми в Python, це звучить доречно.

Case sensitivity

Python є case-sensitive.

Це різні змінні:

name = "Anna"
Name = "Marco"
NAME = "Sofia"

print(name)
print(Name)
print(NAME)

Output:

Anna
Marco
Sofia

Python бачить їх як три різні назви.

Але, будь ласка, не роби так у реальному коді.

Це заплутує.

Заплутаний код — це місце, де bugs орендують квартири.

Використовуй один зрозумілий стиль.

Краще:

name

а не:

Name
NAME
nAmE

Твій код — не лист від викрадача.

Типова помилка: використати змінну до створення

Неправильно:

print(name)

name = "Anna"

Python виконує код зверху вниз.

У першому рядку name ще не існує.

Тому Python скаржиться:

NameError: name 'name' is not defined

Правильно:

name = "Anna"

print(name)

Спочатку створи змінну.

Потім використовуй.

Дуже просто.

Дуже важливо.

Як взутися перед виходом на вулицю.

Зазвичай рекомендується.

Типова помилка: забути лапки навколо тексту

Неправильно:

name = Anna

Python думає, що Anna — це змінна.

Але ми не створювали змінну з назвою Anna.

Правильно:

name = "Anna"

Тексту потрібні лапки.

Назвам змінних — ні.

Порівняй:

name = "Anna"
print(name)

Це виводить:

Anna

Лапки створюють текст.

Змінна його зберігає.

Потім print(name) показує збережене значення.

Дуже чисто.

Дуже Python.

Типова помилка: плутати числа й рядки

Подивись на це:

age = 25

Це integer.

А тепер це:

age = "25"

Це string.

Це не одне й те саме.

Спробуй:

age = "25"

print(type(age))

Output:

<class 'str'>

Хоча це виглядає як число, Python ставиться до нього як до тексту, бо воно в лапках.

Це важливо.

Дуже важливо.

Особливо під час обчислень.

Приклад: string не можна використовувати як число

Спробуй:

age = "25"
next_year = age + 1

print(next_year)

Це дасть помилку.

Чому?

Бо age — це текст.

Python не може додати число 1 до тексту "25".

Правильно:

age = 25
next_year = age + 1

print(next_year)

Output:

26

Типи даних мають значення.

Python не вгадує.

Python не каже:

Це виглядає як число, можливо...

Ні.

Python дотримується типу.

Суворий.

Але справедливий.

Переважно.

Конвертація типів

Іноді потрібно перетворити значення з одного типу на інший.

Приклади:

age_text = "25"
age_number = int(age_text)

print(age_number + 1)

Output:

26

Тут:

int(age_text)

перетворює string "25" на integer 25.

Можна також використовувати:

str()
float()
bool()

Приклади:

number = 25
text = str(number)

price_text = "19.99"
price = float(price_text)

Ми більше попрактикуємо конвертацію типів пізніше.

Поки що просто знай, що вона існує.

Це як сказати Python:

Будь ласка, сприймай це значення як інший тип.

Python може погодитися.

Якщо значення має сенс.

Приклад:

int("banana")

Python категорично не погодиться.

І його можна зрозуміти.

Міні-програма: ціна продукту

Створи файл:

product.py

Напиши:

product_name = "Notebook"
price = 5.99
quantity = 3

total = price * quantity

print(f"Product: {product_name}")
print(f"Price: {price}")
print(f"Quantity: {quantity}")
print(f"Total: {total}")

Запусти:

python product.py

або:

python3 product.py

Output:

Product: Notebook
Price: 5.99
Quantity: 3
Total: 17.97

Це вже корисна логіка.

Ти зберігаєш дані.

Обчислюєш результат.

Виводиш зрозуміле повідомлення.

Крихітна програма.

Реальна ідея.

Дуже добре.

Міні-програма: профіль користувача

Створи ще один файл:

profile.py

Напиши:

first_name = "Anna"
last_name = "Rossi"
age = 25
city = "Rome"
is_student = True

print(f"Name: {first_name} {last_name}")
print(f"Age: {age}")
print(f"City: {city}")
print(f"Student: {is_student}")

Output:

Name: Anna Rossi
Age: 25
City: Rome
Student: True

Це простий профіль користувача.

Багато реальних застосунків зберігають таку інформацію.

Звісно, реальні застосунки зберігають її в базах даних.

Але до баз даних нам потрібні змінні.

Змінна — це перша маленька пам’ять.

База даних — це велика серйозна пам’ять з документами.

Практика

Створи файл:

practice_variables.py

Напиши змінні для:

Приклад:

name = "Viktor"
age = 33
city = "Vigevano"
favorite_language = "Python"
is_learning_python = True
price = 12.50
quantity = 2

total = price * quantity

print(f"Name: {name}")
print(f"Age: {age}")
print(f"City: {city}")
print(f"Favorite language: {favorite_language}")
print(f"Learning Python: {is_learning_python}")
print(f"Total price: {total}")

Запусти файл.

Потім зміни значення.

Запусти знову.

Ціль — зрозуміти цей цикл:

зміни значення
запусти програму
побач інший output

Це одна з головних сил змінних.

Код може залишатися тим самим.

Дані можуть змінюватися.

Дуже корисно.

Дуже програмування.

Міні-завдання

Створи файл:

small_shop.py

Твоя програма має зберігати:

Потім обчисли:

total price = price * quantity

Виведи чек так:

Customer: Anna
Product: Keyboard
Available: True
Price: 70.0
Quantity: 2
Total: 140.0

Приклад рішення:

customer_name = "Anna"
product_name = "Keyboard"
is_available = True
price = 70.0
quantity = 2

total = price * quantity

print(f"Customer: {customer_name}")
print(f"Product: {product_name}")
print(f"Available: {is_available}")
print(f"Price: {price}")
print(f"Quantity: {quantity}")
print(f"Total: {total}")

Тепер зміни продукт.

Зміни кількість.

Зміни ціну.

Запусти знову.

Так ти вчишся.

Не дивлячись на теорію, поки душа виходить із кімнати.

А змінюючи код і дивлячись, що станеться.

Checklist для початківців

Коли програма не працює, перевір:

Я зберіг файл?
Я запускаю правильний файл?
Я в правильній папці?
Я правильно написав назву змінної?
Я створив змінну перед тим, як її використати?
Я поставив текст у лапки?
Я використав крапку для десяткових чисел?
Я випадково не використав пробіли в назвах змінних?
Я написав True і False з великої літери?

Цей checklist зекономить тобі час.

Багато помилок початківців маленькі.

Крихітна помилка.

Велика драма.

Класичне програмування.

Підсумок

Сьогодні ти вивчив:

Це одна з найважливіших лекцій у програмуванні.

Змінні всюди.

Кожна корисна програма зберігає значення.

Ім’я.

Число.

Ціну.

Результат.

Стан.

Правду.

Помилку.

Можливо, не саму помилку.

Але дані про помилку.

Дуже сучасно.

Дуже Python.

Наступна лекція

У наступній лекції ми вивчимо input.

Ти навчишся питати користувача про інформацію:

name = input("What is your name? ")

Тоді твої програми стануть інтерактивними.

Замість того, щоб просто виводити фіксовані значення, вони питатимуть і відповідатимуть.

Саме тоді програма починає виглядати живою.

Не надто живою.

Ми не будуємо повстання роботів.

Тільки маленьку Python-програму.

Поки що.