Теперь запакуем строку.
В этом случае следует передавать тип данных bytes.
>>> struct.pack('=s', b'a')
b'a'
Для записи слова следует указывать количество символов.
>>> struct.pack('=5s', b'hello')
b'hello'
Кстати, запакованный вид соответствует исходному тексту. Всё верно, символ есть в таблице ASCII, то есть его код попадает в диапазон 0-127, он может быть записан одним байтом и имеет визуальное представление. А вот что будет если добавить символ вне ASCII
>>> struct.pack(f'=s', b'ё')
SyntaxError: bytes can only contain ASCII literal characters.
Ошибка возникла еще на этапе создания объекта bytes, который не может содержать такой символ. Поэтому надо кодировать эти байты из строки.
>>> enc = 'ёжик'.encode('utf-8')
>>> struct.pack(f'={len(enc)}s', enc)
b'\xd1\x91\xd0\xb6\xd0\xb8\xd0\xba'
Заметьте, длина такой строки в байтах отличается от исходной длины, так как символы вне ASCII записываются двумя байтами и более. Поэтому здесь формат создаём на лету, используя получившуюся длину как каунтер токена.
#libs#basic
Проект "iOS Notification" by Szabó Gergő
Готовый проект уведомлений для iOS, который можно скачать и кастомизировать под себя. Оригинальный шрифт от Apple также идет в проекте.
🖥Посмотреть проект🖥
#template
Прячем мемы на генерациях с AI 🙂
1. Добавляем картинку на воркспейс (советуем использовать квадратное изображение 1024х1024, вы можете изменить размер с помощью Crop&Upscale или Crop&Downscale)
2. Создаем ноду ControlNet XL и подключаем изображение
3. Пишем в промпте, что хотим сгенерировать. Это может быть что угодно от лендскейпа до фоток еды. Чем подробнее промпт, тем лучше
4. Выставляем в настройках Type: QR. Повышаем параметр Control Weight до 1.5
5. Готово!
Мем плохо виден на картинке? Повысьте Control Weight до 2.
Мем слишком очевиден? Попробуйте понизить Control Weight до 1.
Попробуйте сейчас, просто заменив картинку в нашем темплейте Hide the Meme 🚀
Ждём ваши мемы в комментах 🌚
#template