Archived
1
0
Fork 0
This repository has been archived on 2024-04-26. You can view files and clone it, but cannot push or open issues or pull requests.
akari-bot/modules/coin/zhNum2Int.py

47 lines
1.3 KiB
Python
Raw Normal View History

2023-03-01 13:30:11 +00:00
ZH_NUM_CHAR_DICT = {
2023-03-11 10:48:27 +00:00
'': 1,'': 1,
'': 2,'': 2,'': 2,'': 2,
'': 3,'': 3,'': 3,
'': 4,'': 4,
'': 5,'': 5,
'': 6,'': 6,
'': 7,'': 7,
'': 8,'': 8,
'': 9,'': 9,
'': 0,'': 0,'O': 0,'o': 0
2023-03-01 13:30:11 +00:00
}
ZH_NUM_CHAR_DICT2 = {
'亿': (100000000,True),
'': (10000,True),
2023-03-11 10:48:27 +00:00
'': (1000,False),'':(1000,False),
2023-03-01 14:26:55 +00:00
'': (100,False),'': (100,False),
2023-03-11 10:48:27 +00:00
'': (10,False),'':(10,False),
'': (1,False)
2023-03-01 13:30:11 +00:00
}
def Zh2Int(chars):
result = 0
buffer = 0
prev_is_num = False
2023-03-11 10:48:27 +00:00
if chars == '':
return 1
chars = chars.replace('廿','二十')
2023-03-01 13:30:11 +00:00
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:
2023-03-11 10:48:27 +00:00
raise ValueError(f"存在无法识别的字符:{c}")
2023-03-01 13:30:11 +00:00
result += buffer
return result