Теперь запакуем строку.
В этом случае следует передавать тип данных 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
Bitcoin on #Bithumb suddenly dropped, trading over 10% below other markets.
Reports say a staff mistake during an airdrop sent 2,000 $BTC($133M) instead of a small KRW reward.
Some users sold it right away, causing the price to drop fast.
JUST IN : 💰🚨Bitcoin on #Bithumb suddenly dropped, trading over 10% below other markets.
Reports say a staff mistake during an airdrop sent 2,000 $BTC($133M) instead of a small KRW reward.
Some users sold it right away, causing the price to drop fast.
➖➖➖➖➖➖➖➖➖
📣@cryptonewstel
✨Vip join⭐️
🚨 DWF Labs has deposited all 170K $CYBER to #Bithumb at $8.6 on average ($1.46M) in 7 transactions over the past 24 hours.
➡️ DWF Labs will earn an estimated profit of $697K (+91.1%) from $CYBER if truly sold just now.
👉 More details: https://platform.spotonchain.ai/signal-details/dwf-labs-closed-the-first-cyber-deal-for-great-profit-516
👉 Visit our discord: https://discord.com/invite/Xh7cReej7n