Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to combine unicode subscript with string formatting

I am trying to get unicode subscripts working with string formatting... I know I can do something like this...

>>>print('Y\u2081')
Y₁
>>>print('Y\u2082')
Y₂

But what i really need is something like this since I need the subscript to iterate over a range. Obviously this doesn't work though.

>>>print('Y\u208{0}'.format(1))
  File "<ipython-input-62-99965eda0209>", line 1
    print('Y\u208{0}'.format(1))
         ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 1-5: truncated \uXXXX escape

Any help appreciated

like image 280
asdf Avatar asked Jul 24 '26 00:07

asdf


1 Answers

\uhhhh is an escape syntax in the string literal. You'd have to produce a raw string (where the escape syntax is ignored), then re-apply the normal Python parser handling of escapes:

import codecs

print(codecs.decode(r'Y\u208{0}'.format(1), 'unicode_escape'))

However, you'd be better of using the chr() function to produce the whole character:

print('Y{0}'.format(chr(0x2080 + 1)))

The chr() function takes an integer and outputs the corresponding Unicode codepoint in a string. The above defines a hexadecimal number and adds 1 to produce your desired 2080 range Unicode character.

like image 179
Martijn Pieters Avatar answered Jul 25 '26 14:07

Martijn Pieters



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!