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

Повертаємось до Python.
У попередній лекції ти встановив Python, відкрив термінал, створив свій перший .py файл і використав print().
Дуже добре.
Ти сказав Python:
print("Hello, World!")
І Python послухався.
Прекрасний початок.
Але тепер нам потрібно щось корисніше.
Виводити текст — це добре.
Але справжні програми мають запам’ятовувати речі.
Імена.
Вік.
Ціни.
Бали.
Імена користувачів.
Шляхи до файлів.
Інформацію про те, чи щось є правдою або неправдою.
І тут на сцену виходять змінні.
Змінні дозволяють програмі зберігати значення й використовувати їх пізніше.
Без змінних твоя програма мала б пам’ять золотої рибки після оновлення системи.
Не ідеально.
Що ти вивчиш
У цій лекції ти вивчиш:
- що таке змінні;
- як створювати змінні в Python;
- як виводити змінні;
- як змінювати значення змінної;
- як працюють рядки;
- як працюють цілі числа;
- як працюють float;
- як працюють boolean;
- як перевіряти типи даних через
type(); - як давати змінним зрозумілі назви;
- типові помилки початківців;
- як практикуватися з простими даними.
До кінця цієї лекції ти зрозумієш, як 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
Тут ми зберігаємо:
- текст у
name; - число в
age; - текст у
city.
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
Правила:
- використовуй літери, цифри й underscores;
- не починай з цифри;
- не використовуй пробіли;
- не використовуй ключові слова Python;
- назви є case-sensitive.
Неправильно:
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
Напиши змінні для:
- свого імені;
- свого віку;
- свого міста;
- улюбленої мови програмування;
- того, чи ти вивчаєш Python;
- ціни чогось, що ти купив;
- кількості.
Приклад:
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 виконує код зверху вниз;
- змінні можуть змінюватися;
- strings зберігають текст;
- integers зберігають цілі числа;
- floats зберігають десяткові числа;
- booleans зберігають
TrueабоFalse; type()показує тип значення;- f-strings зрозуміло поєднують текст і змінні;
- змінні можна використовувати в обчисленнях;
- назви змінних мають бути зрозумілими;
- Python зазвичай використовує
snake_case; - Python є case-sensitive;
- тексту потрібні лапки;
- числам лапки не потрібні;
- типи даних мають значення.
Це одна з найважливіших лекцій у програмуванні.
Змінні всюди.
Кожна корисна програма зберігає значення.
Ім’я.
Число.
Ціну.
Результат.
Стан.
Правду.
Помилку.
Можливо, не саму помилку.
Але дані про помилку.
Дуже сучасно.
Дуже Python.
Наступна лекція
У наступній лекції ми вивчимо input.
Ти навчишся питати користувача про інформацію:
name = input("What is your name? ")
Тоді твої програми стануть інтерактивними.
Замість того, щоб просто виводити фіксовані значення, вони питатимуть і відповідатимуть.
Саме тоді програма починає виглядати живою.
Не надто живою.
Ми не будуємо повстання роботів.
Тільки маленьку Python-програму.
Поки що.