Теперь запакуем строку.
В этом случае следует передавать тип данных 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
#Italia🇮🇹
#Comunali
#Matera
❗️Roberto #Cifarelli (#PD|S&D; #Azione|RE; #PiùEu|RE; #IV|RE; #PSI|S&D; #Volt|G/EFA; civiche) e Antonio #Nicoletti (#FdI|ECR; #FI|PPE; #LSP|PfE; #UdC|PPE; civiche) si sfideranno al ballottaggio, che si terrà domenica 8 e lunedì 9 giugno 2025.
@TuttoElezioni
#Italia🇮🇹
#Comunali
#Matera
A Matera, unico Comune superiore al voto in Basilicata, sono 5 in candidati.
Per il centrodestra, il candidato è Antonio #Nicoletti, sostenuto da Fratelli d'Italia (#FdI|ECR), Forza Italia (#FI|PPE), Lega (#LSP|PfE), Unione di Centro (#UdC|PPE), Io Sud e altre liste civiche.
Il campo del centrosinistra invece si presenta diviso:
- Domenico #Bennardi è il candidato del Movimento 5 Stelle (#M5S|LEFT), eletto nel 2020 e dimessosi nel 2024;
- Roberto #Cifarelli è sostenuto dal Partito Democratico (#PD|S&D; sebbene il simbolo del partito non sia presente), #Azione|RE, +Europa (#PiùEu|RE), Italia Viva (#IV|RE; simbolo non presente), Partito Socialista Italiano (#PSI|S&D), #Volt|G/EFA e da liste civiche.
Gli altri due candidati sono Luca #Prisco (liste civiche) e Vincenzo #Santochirico (sostenuto da #EV|G/EFA).
@TuttoElezioni