Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте None та Бінарні Дані | Взаємодія між типами
Типи Даних у Python

None та Бінарні Дані

Свайпніть щоб показати меню

Реальні програми обробляють відсутні значення та бінарні дані. Використовуйте None для позначення "немає значення", а bytes/bytearray — для необробленого бінарного вмісту. Важливо знати, коли кожен тип доречний і як безпечно конвертувати між текстом і байтами.

None для "Відсутнє значення"

None — це єдиний об'єкт, що означає "тут нічого немає".

1234567
result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")

Використовуйте is None замість перевірок на істинність, оскільки 0 та "" також є хибними значеннями.

123
value = 0 print(not value) # True print(value is None) # False

Значення за замовчуванням і запасні варіанти

None використовується як чіткий маркер того, що значення навмисно відсутнє. Це дозволяє відрізняти "значення не надано" від коректних значень, таких як 0 або "", роблячи використання значень за замовчуванням і запасних варіантів безпечнішим і передбачуванішим.

1234567
x = None print(x or "unknown") # 'unknown' print("unknown" if x is None else x) x = 0 print(x or "unknown") # 'unknown' print("unknown" if x is None else x) # 0

Функції та параметри

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

1234567
def add_tag(text, tag=None): if tag is None: tag = "general" return f"[{tag}] {text}" print(add_tag("hello")) # [general] hello print(add_tag("hello", "news")) # [news] hello

Бінарні дані

str містить текст, bytes і bytearray містять необроблені байтові значення.

1234
b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65

Кодування та декодування

Кодування перетворює текст у байти для надійного зберігання або передачі, а декодування відновлює ці байти у читабельний текст. Використання визначеного кодування, наприклад UTF-8, гарантує правильне збереження символів.

123
text = "café" data = text.encode("utf-8") back = data.decode("utf-8")

Змішування тексту та байтів

Текст (str) і байти (bytes) не можна поєднувати безпосередньо, оскільки вони представляють різні типи даних. Щоб безпечно їх змішувати, спочатку потрібно явно перетворити текст у байти за допомогою кодування.

123456
try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")

Відмінності у довжині

Деякі символи займають один текстовий елемент, але кілька байтів, тому їхня довжина у str та у закодованому вигляді може відрізнятися. Це відбувається тому, що кодування, такі як UTF-8, можуть використовувати більше одного байта для представлення одного символу.

123
ch = "é" len(ch) # 1 len(ch.encode()) # 2

Файли

Бінарні файли необхідно відкривати в режимі "rb", щоб їхні сирі байти зчитувалися точно так, як збережено. Це запобігає спробам Python інтерпретувати дані як текст.

# with open("example.png", "rb") as f:
#     blob = f.read()
question mark

Яка перевірка коректно визначає відсутнє значення?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 4. Розділ 3
some-alt