Лекція 4. Як комп’ютер зберігає текст
Лекція 4. Як комп’ютер зберігає текст
Section titled “Лекція 4. Як комп’ютер зберігає текст”Рівень 1: Мисливець за даними
Марко, сьогодні ми не просто вивчимо новий термін — ми відкриємо ще один шар того, як насправді працює комп’ютер.
Що ми сьогодні розкриємо
Section titled “Що ми сьогодні розкриємо”- зрозуміти, навіщо символам потрібні числові коди
- познайомитися з ASCII, Unicode та UTF-8
- уміти отримати код символу й побачити його байти
Зв’язок з попередніми лекціями
Section titled “Зв’язок з попередніми лекціями”У цій лекції ми використаємо знання про біти та байти з лекції 3, щоб зрозуміти, як символи перетворюються на числові коди.
Букві потрібен номер
Section titled “Букві потрібен номер”Комп’ютер не може покласти всередину пам’яті справжню літеру 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Приклади
Section titled “Приклади”Приклад 1
Section titled “Приклад 1”У Python ord("A") дає 65, а chr(65) повертає A. Це два напрямки одного перекладу.
Приклад 2
Section titled “Приклад 2”"A".encode("utf-8") покаже один байт, а "М".encode("utf-8") — кілька байтових значень.
Приклад 3
Section titled “Приклад 3”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 і порівняй результат.
Місія для Марка
Section titled “Місія для Марка”Виконай місію по черзі. Якщо щось не виходить — спочатку перечитай приклад вище й спробуй знайти, на якому кроці результат відрізняється.
- запусти програму для
МаркотаMarko - випиши Unicode-коди всіх літер слова
Марко - за допомогою
chr()віднови хоча б три символи з їхніх кодів - порівняй
len("Marko")іlen("Marko".encode("utf-8")), а потім те саме дляМарко - поясни ланцюжок «символ → Unicode → UTF‑8 байти» власними словами
Перевір себе
Section titled “Перевір себе”- Що робить
ord()? - Що робить
chr()? - Навіщо з’явився Unicode?
- Чим Unicode відрізняється від UTF‑8?
- Чому український текст може мати більше байтів, ніж символів?
Терміни однією фразою
Section titled “Терміни однією фразою”- Код символу — номер, який домовлено дати кожному символу (наприклад
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-символи у байти
Хакерський принцип: не запам’ятовуй магічні слова. Намагайся пояснити своїми словами, що відбулося і чому.