我有一个非常简单的java
课程,我试图移植到Python
,但我被困在了一线:
int value = Character.getNumericValue(character);
我找到了this示例,但我不明白Character.getNumericValue(character)
如何返回10
(因为例如ASCII值为65
)。
如果不理解这一行,就很难移植它。
答案 0 :(得分:1)
Character.getNumericValue()
会为10
返回A
,因为它是数字系统中的数字,其基数超过十进制系统(例如十六进制,一直到35基数):
>>> int('A', 36)
10
>>> int('Z', 36)
35
来自Character.getNumericValue()
documenation:
字母AZ以大写字母(
'\u0041'
到'\u005A'
),小写字母('\u0061'
到'\u007A'
)和全宽变体('\uFF21'
到{ {1}}和'\uFF3A'
到'\uFF41'
)表单具有从10到35的数值。这与Unicode规范无关,后者不会为这些'\uFF5A'
值指定数值。 / p>
没有直接的Python等价物; char
也解释罗马数字,例如,你必须自己编写这样的映射。
答案 1 :(得分:0)
没有一个现成的Python函数是等价的,但我认为两个函数组合涵盖了整个范围。对于ASCII字符0..9和A..Z,具有正确基本参数(36)的int()
就足够了。为了获得unicode代码点的数值,有unicodedata.numeric,因为它会返回一个浮点数。