Lac*_*ono 2 python string unicode
你好,我的同伴们!
我绝对是Python和编码的初学者。现在,我正在编写将常规阿拉伯数字转换为罗马数字的代码。对于大于3 999的数字,罗马人通常在字母上写一行以使其大千倍。例如,IV上面有一条线表示4000。在Python中这怎么可能?我了解您可以通过编写“ \ u203E”来创建“ overscore”。如何使它出现在字母上方而不是旁边?
问候
您需要使用组合字符U + 0304。
>>> print(u'a\u0304')
?
Run Code Online (Sandbox Code Playgroud)
U + 0305可能是一个更好的选择(如理疗师建议的那样)。您也可以使用Unicode罗马数字(U + 2160至U + 217f)代替常规的大写拉丁字母,尽管(至少在我的终端机中)它们的上划线显示效果不佳。
>>> print(u'\u2163\u0305')
??
>>> print u'I\u0305V\u0305'
I?V?
Run Code Online (Sandbox Code Playgroud)
(或者如我所见:
请注意,上划线位于单字符罗马数字4的中心,但并未完全覆盖。)
(任何纯文本选项都只能与运行代码的人使用的字体和渲染器一样好。例如,在我键入此代码时,I + V版本甚至不能始终显示一致;有时,横线在字母上方,有时他们会跟随字母。)