我如何让 unicode 源代码影响整个字符串而不仅仅是第一个字符?
How do I have a unicode source code affect the whole string instead of just the first character?
我正在 python 中制作一个简单的罗马数字转换器并使用它:
num_values = [(1000000, 'M'+ u'\u0304'),
(900000, 'CM'+ u'\u0304'),
(100000, 'C'+ u'\u0304'),
(90000, 'XC'+ u'\u0304'),
(50000, 'L'+ u'\u0304'),
(40000, 'XL'+ u'\u0304'),
(10000, 'X'+ u'\u0304'),
(5000, 'V'+ u'\u0304'),
(1000, 'M'),
(900, 'CM'),
(500, 'D'),
(400, 'CD'),
(100, 'C'),
(90, 'XC'),
(50, 'L'),
(40, 'XL'),
(10, 'X'),
(9, 'IX'),
(5, 'V'),
(4, 'IV'),
(1, 'I')]
来表示我的函数迭代的值。但是,unicode 似乎只影响字符串中的第一个字符。 (例如,'CM'+ u'\u0304'
看起来像 CM̄ 而不是 C̄M̄。)
有没有办法在将所有内容保存在一个索引中的同时更正此问题?
组合宏指令 (U+0304) 与前面的代码点组合(仅)。如果你想要两个带横线的字符,你将需要两个组合长音符。或者:
'C\u0304M\u0304'
或
'C' + '\u0304' + M + '\u0304'
如果您使用 Python 2(不用),您将需要 u'\u0304'
或 u'C\u0304M\u0304'
您可能对 Unicode
(100_000, u'\u2188'), # ↈ
(50_000, u'\u2187'), # ↇ
(10_000, u'\u2182'), # ↂ
不幸的是,1_000_000 没有任何内容,我不知道它们的历史如何(这可能取决于您谈论的时间和地点)。还有 u'\u2180' (ↀ) 作为替代 1000。(结合 macron 可以使用它。)
我正在 python 中制作一个简单的罗马数字转换器并使用它:
num_values = [(1000000, 'M'+ u'\u0304'),
(900000, 'CM'+ u'\u0304'),
(100000, 'C'+ u'\u0304'),
(90000, 'XC'+ u'\u0304'),
(50000, 'L'+ u'\u0304'),
(40000, 'XL'+ u'\u0304'),
(10000, 'X'+ u'\u0304'),
(5000, 'V'+ u'\u0304'),
(1000, 'M'),
(900, 'CM'),
(500, 'D'),
(400, 'CD'),
(100, 'C'),
(90, 'XC'),
(50, 'L'),
(40, 'XL'),
(10, 'X'),
(9, 'IX'),
(5, 'V'),
(4, 'IV'),
(1, 'I')]
来表示我的函数迭代的值。但是,unicode 似乎只影响字符串中的第一个字符。 (例如,'CM'+ u'\u0304'
看起来像 CM̄ 而不是 C̄M̄。)
有没有办法在将所有内容保存在一个索引中的同时更正此问题?
组合宏指令 (U+0304) 与前面的代码点组合(仅)。如果你想要两个带横线的字符,你将需要两个组合长音符。或者:
'C\u0304M\u0304'
或
'C' + '\u0304' + M + '\u0304'
如果您使用 Python 2(不用),您将需要 u'\u0304'
或 u'C\u0304M\u0304'
您可能对 Unicode
(100_000, u'\u2188'), # ↈ
(50_000, u'\u2187'), # ↇ
(10_000, u'\u2182'), # ↂ
不幸的是,1_000_000 没有任何内容,我不知道它们的历史如何(这可能取决于您谈论的时间和地点)。还有 u'\u2180' (ↀ) 作为替代 1000。(结合 macron 可以使用它。)