2016-07-05 7 views
1

I Unicode-Indizes arbeitet mit String-Formatierung ... Ich weiß, dass ich so tun kann ...Wie Unicode-Index mit Zeichenfolge Formatierung kombinieren

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

Aber was etwas zu bekommen, versuche ich brauche wirklich ist so etwas, da ich den Index brauche, um über einen Bereich zu iterieren. Das funktioniert natürlich nicht.

>>>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 

Jede Hilfe willkommen

+0

Mein B, bearbeitet .... – asdf

Antwort

3

\uhhhh ist eine Escape-Syntax im Stringliteral. Sie würden eine rohe Zeichenfolge produzieren (wo die Escape-Syntax ignoriert wird), dann re-apply den normalen Python-Parser Umgang mit Fluchten:

import codecs 

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

, sollten Sie besser sein, die chr() function die Verwendung

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

chr() die Funktion nimmt eine ganze Zahl und gibt den entsprechenden Unicode-Codepunkt in einer Kette: den ganzen Charakter zu erzeugen. Obiges definiert eine hexadezimale Zahl und fügt 1 hinzu, um das gewünschte 2080 Bereich Unicode-Zeichen zu erzeugen.

+0

dies wird nicht für hochgestellte arbeiten; Unicode-Superscripts sind kein fortlaufender Block –

+0

@Kelvin: Ich habe hier gar nicht über Hochgestelltes nachgedacht. –

+0

Arbeitete für mich ... '['Y {0}'. Format (chr (0x2080 + i)) für i im Bereich (10)] Out [74]: ['Y₀', 'Y₁', 'Y₂ ',' Y3 ',' Y4 ',' Y '', 'Y' ',' Y '', 'Y' ',' Y ''] ' – asdf

Verwandte Themen