Теперь запакуем строку.
В этом случае следует передавать тип данных 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
#CapitanAmerica🛡
Se mostro un nuevo avance de Capitán América Un Nuevo Mundo, En el avance se vio de frente a Red Hulk y una escena donde Thunderbolt Ross menciona que han encontrado Adamantium, el cual tomarán del Celestial que vimos en Eternals.
La trama además de traer el Adamantium al MCU, el Presidente Ross querrá formar unos Nuevos Vengadores!
Sam Wilson quiere saber porque Ross ahora está interesado en formar unos Vengadores, pero este no quiere explicárselo.
@MARVELNOTICIAS📮
#CapitanAmerica🛡
¡CAPITÁN AMÉRICA SE RETRASÓ POR LA ACCIÓN!
Daniel RPK nuestro insider de confianza revela que Marvel Studios decidió retrasar 'Capitán América: Brave New World' debido a que las escenas de acción no fueron suficientemente satisfactorias y grandes en comparación con las anteriores de la trilogía original del Capitán América.
Esperemos que si mejoren las escenas de acción, se supone que veremos a Red Hulk y no queremos peleas aburridas. Tienen tiempo para arreglarlo.
'Capitán América: Brave New World' se estrena en febrero de 2025.
@MARVELNOTICIAS📮