initial commit

This commit is contained in:
LittleSam129
2026-07-20 13:58:58 +03:00
commit acf7a76546
104 changed files with 27464 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
"""
Lab001, часть 2.
Русский текст, символы, байты и кодировка UTF-8.
Цель:
1. Увидеть разницу между количеством символов и количеством байтов.
2. Посмотреть, сколько байтов занимает каждая русская буква.
3. Восстановить исходный текст из байтов.
"""
# Исходное сообщение
message = "ПРИВЕТ SDR"
# Преобразование текста в байты UTF-8
encoded_message = message.encode("utf-8")
# Обратное преобразование байтов в текст
decoded_message = encoded_message.decode("utf-8")
print("Исходный текст:")
print(message)
print("\nКоличество символов:")
print(len(message))
print("\nКоличество байтов UTF-8:")
print(len(encoded_message))
print("\nОбъект bytes:")
print(encoded_message)
print("\nВсе байты в десятичном виде:")
print(list(encoded_message))
print("\nПодробно по каждому символу:")
for character in message:
character_bytes = character.encode("utf-8")
decimal_bytes = list(character_bytes)
binary_bytes = " ".join(
f"{byte:08b}" for byte in character_bytes
)
print(
f"{character!r:>4} "
f"→ байтов: {len(character_bytes)} "
f"→ числа: {decimal_bytes} "
f"→ биты: {binary_bytes}"
)
print("\nВосстановленный текст:")
print(decoded_message)
# Автоматические проверки
assert decoded_message == message
assert len(encoded_message) >= len(message)
print("\nПроверка пройдена: русский текст восстановлен без ошибок.")