43 lines
No EOL
1.1 KiB
Python
43 lines
No EOL
1.1 KiB
Python
ZH_NUM_CHAR_DICT = {
|
|
'一': 1,
|
|
'二': 2,'俩': 2,'两': 2,
|
|
'三': 3,'仨': 3,
|
|
'四': 4,
|
|
'五': 5,
|
|
'六': 6,
|
|
'七': 7,
|
|
'八': 8,
|
|
'九': 9,
|
|
'零': 0,
|
|
}
|
|
|
|
ZH_NUM_CHAR_DICT2 = {
|
|
'亿': (100000000,True),
|
|
'万': (10000,True),
|
|
'千': (1000,False),
|
|
'百': (100,False),'佰': (100,False),
|
|
'十': (10,False)
|
|
}
|
|
|
|
def Zh2Int(chars):
|
|
result = 0
|
|
buffer = 0
|
|
prev_is_num = False
|
|
for c in chars:
|
|
if c in ZH_NUM_CHAR_DICT.keys():
|
|
if prev_is_num:
|
|
buffer *= 10
|
|
buffer += ZH_NUM_CHAR_DICT[c]
|
|
prev_is_num = True
|
|
elif c in ZH_NUM_CHAR_DICT2.keys():
|
|
if ZH_NUM_CHAR_DICT2[c][1]:
|
|
result += buffer
|
|
result *= ZH_NUM_CHAR_DICT2[c][0]
|
|
else:
|
|
result += buffer * ZH_NUM_CHAR_DICT2[c][0]
|
|
buffer = 0
|
|
prev_is_num = False
|
|
else:
|
|
raise ValueError("存在无法识别的字符")
|
|
result += buffer
|
|
return result |