Skip to content

Лекція 4. Як комп’ютер зберігає текст

Лекція 4. Як комп’ютер зберігає текст

Section titled “Лекція 4. Як комп’ютер зберігає текст”

Рівень 1: Мисливець за даними

Марко, сьогодні ми не просто вивчимо новий термін — ми відкриємо ще один шар того, як насправді працює комп’ютер.

Що ми сьогодні розкриємо

Section titled “Що ми сьогодні розкриємо”
  • зрозуміти, навіщо символам потрібні числові коди
  • познайомитися з ASCII, Unicode та UTF-8
  • уміти отримати код символу й побачити його байти

Зв’язок з попередніми лекціями

Section titled “Зв’язок з попередніми лекціями”

У цій лекції ми використаємо знання про біти та байти з лекції 3, щоб зрозуміти, як символи перетворюються на числові коди.

Комп’ютер не може покласти всередину пам’яті справжню літеру A. Він зберігає числа. Тому люди домовилися: кожному символу призначити номер.

Наприклад, у таблиці ASCII латинська велика A має номер 65, B — 66, а цифра-символ 0 — 48. Така таблиця дозволяє різним програмам однаково тлумачити ті самі числа.

ASCII було замало для світу

Section titled “ASCII було замало для світу”

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

Тому з’явився Unicode — велика система кодових точок для символів багатьох мов. Наприклад, М має власну Unicode-кодову точку.

UTF-8 — спосіб перетворити Unicode на байти

Section titled “UTF-8 — спосіб перетворити Unicode на байти”

Unicode відповідає на питання «який номер має символ», а UTF‑8 визначає, як цей номер записати одним або кількома байтами.

Англійські ASCII-символи в UTF‑8 займають один байт. Багато українських літер — два байти. Emoji можуть займати ще більше.

Тому важливо розрізняти:

символ → Unicode-код → байти UTF-8

У Python ord("A") дає 65, а chr(65) повертає A. Це два напрямки одного перекладу.

"A".encode("utf-8") покаже один байт, а "М".encode("utf-8") — кілька байтових значень.

bin(ord("A")) показує двійковий запис числа 65. Так ми пов’язуємо цю лекцію з двійковою системою.

Python-лабораторія: розбираємо ім’я на коди

Section titled “Python-лабораторія: розбираємо ім’я на коди”
name = "Марко"
for letter in name:
code = ord(letter)
print(
letter,
"Unicode:", code,
"binary:", bin(code),
"UTF-8:", letter.encode("utf-8")
)

Потім спробуй змінити name на Marko і порівняй результат.

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

  1. запусти програму для Марко та Marko
  2. випиши Unicode-коди всіх літер слова Марко
  3. за допомогою chr() віднови хоча б три символи з їхніх кодів
  4. порівняй len("Marko") і len("Marko".encode("utf-8")), а потім те саме для Марко
  5. поясни ланцюжок «символ → Unicode → UTF‑8 байти» власними словами
  • Що робить ord()?
  • Що робить chr()?
  • Навіщо з’явився Unicode?
  • Чим Unicode відрізняється від UTF‑8?
  • Чому український текст може мати більше байтів, ніж символів?
  • Код символу — номер, який домовлено дати кожному символу (наприклад A = 65).
  • ASCII — старий алфавіт символів з невеликим набором (переважно англійська).
  • Unicode — велика система номерів для символів багатьох мов, знаків та emoji.
  • Кодова точка — номер конкретного символа в Unicode.
  • UTF-8 — правила, як записати Unicode-номер одним або кількома байтами.
  • ord() / chr() — Python-функції: ord дає номер символа, chr повертає символ за номером.

Чек-лист перед наступною лекцією

Section titled “Чек-лист перед наступною лекцією”
  • Чи можеш ти пояснити різницю між ASCII та Unicode?
  • Чи знаєш ти, як працює UTF-8 кодування?
  • Чи вмієш ти користуватися функціями ord() та chr()?

Що потрібно винести з лекції

Section titled “Що потрібно винести з лекції”
  • текст у комп’ютері представлений числовими кодами та байтами
  • ASCII — старий невеликий набір символів, Unicode охоплює значно більше мов і знаків
  • UTF‑8 — популярний спосіб кодувати Unicode-символи у байти

Хакерський принцип: не запам’ятовуй магічні слова. Намагайся пояснити своїми словами, що відбулося і чому.