阿罗哈,我有一些字符串,我很好地用这种方式用str.format()
格式化:
strings = [
'Aloha',
'SomeString',
'Special ´ char',
'Numb3rsAndStuff'
]
for string in strings:
print('> {:<20} | more text <'.format(string))
这给了我这个输出:
Aloha | more text <
strings | more text <
Special ´ char | more text <
Numb3rs | more text <
如您所见,特殊字符会破坏对齐方式。我该怎么办?我不希望这种不满......
答案 0 :(得分:4)
如果使用普通字符串,Python 2会出现此问题,因为您包含的特殊字符由两个字符'\xc2\xb4'
表示,占用两个空格。如果你使用unicode字符串它将工作正常。这涉及将u
放在字符串文字的前面。
strings = [
u'Aloha',
u'SomeString',
u'Special ´ char',
u'Numb3rsAndStuff'
]
for string in strings:
print(u'> {:<20} | more text <'.format(string))
输出:
Aloha | more text <
SomeString | more text <
Special ´ char | more text <
Numb3rsAndStuff | more text <
在Python 3中,这不会发生,因为所有字符串都是unicode字符串。