Теперь запакуем строку.
В этом случае следует передавать тип данных 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
Altocumulus clouds putting on a post-storm sunset show! 🌅☁️
After a thunderstorm mid-level clouds like altocumulus are often spotted. These clouds are the ideal backdrop for vibrant skies because they catch sunlight, creating those deep, fiery colours we love.😍#WeatherWednesday
#WeatherWednesday Planning for an outdoor adventure? This message is for you!
While some UV exposure is important for health functions, excessive exposure may be harmful to your skin and eyes. Minimise the effects by:
✅ Using sunscreen (at least SPF 30)
✅ Using an umbrella and seeking shade
✅ Wearing sunglasses that block UVA/UVB rays
✅ Wearing a broad-brimmed hat
#WeatherWednesday. With climate change, many countries in the world are seeing rising temperatures. ☀️🌡️
Minimise your risks of heat stress and heat-related illnesses, with the Heat Stress Advisory on myENV app (www.nea.gov.sg/myENV) or www.weather.gov.sg.
Get helpful tips on how you can adjust your activities, take protective actions, and wear appropriate attire depending on the prevailing heat stress levels.
Before heading out for prolonged outdoor activities, check out tips on how you can adjust your activities, take protective actions and wear appropriate attire depending on the prevailing heat stress levels on myENV app or www.weather.gov.sg.
#WeatherWednesday
#WeatherWednesday Mark your calendars, we're counting down to the celestial spectacle in the night sky! The Harvest Moon 🌕 is set to grace us with its luminous presence on 29 Sep 2023.
Share your best photos using #WeatherWednesday and stand a chance to be featured! 📸✨
For those who answered A, B or C, you may be experiencing pareidolia! It is the term used for the human tendency to see a specific image in random visual patterns. Most of us have experienced it at least once! #WeatherWednesday
Have you ever seen a faint coloured ring circling the sun? These are halos, which are formed by the refraction of sunlight through ice crystals in high-level clouds.
P.S. Remember not to look directly at the sun!
#WeatherWednesday
Have you ever spotted a funnel of water out at sea? This is a waterspout - a rotating column of air that descends from the base of a thunderstorm cloud. They are usually short-lived, lasting between 10 to 30 minutes before quickly dissipating when it nears the coast.
There are an average of 3 occurrences of waterspouts in waters off Singapore per year. If you see one, exit the waters quickly as they can move at speeds up to 80km/h!
#WeatherWednesday
Ever noticed that it gets foggy after prolonged or heavy rainfall? This is because the air is saturated with water vapour, which then condenses around the dust particles in the air, and clumps together. Hence, the fogginess!
#WeatherWednesday
#WeatherWednesday Lightning strikes emit electromagnetic waves that can be detected by a ground-based lightning detection sensor.
Singapore has 4 ground-based sensors which triangulate each strike and determine their location & characteristics! Learn more: go.gov.sg/weather-instruments
#WeatherWednesday How many hours of sunlight do we get? The sunshine recorder measures just that!
As the sun’s rays pass through the instrument’s glass globe, it burns a hole on a recorder card placed at its base.
Learn more at go.gov.sg/weather-instruments