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

53 lines
1.6 KiB
Python
Raw Normal View History

2023-03-01 13:30:11 +00:00
ZH_NUM_CHAR_DICT = {
2023-04-30 03:30:59 +00:00
'1': 1, '': 1, '': 1, '': 1,
'2': 2, '': 2, '': 2, '': 2, '': 2,
'3': 3, '': 3, '': 3, '': 3,
'4': 4, '': 4, '': 4, '': 4,
'5': 5, '': 5, '': 5,
'6': 6, '': 6, '': 6,
'7': 7, '': 7, '': 7, '': 7,
'8': 8, '': 8, '': 8,
'9': 9, '': 9, '': 9, '': 9,
'0': 0, '': 0, '': 0, '': 0, 'O': 0, 'o': 0,
}
2023-03-01 13:30:11 +00:00
ZH_NUM_CHAR_DICT2 = {
2023-04-30 03:30:59 +00:00
'亿': (100000000, True),
'': (10000, True),
'': (1000, False), '': (1000, False),
'': (100, False), '': (100, False),
'': (10, False), '': (10, False),
'': (1, True)
2023-03-01 13:30:11 +00:00
}
2023-04-30 03:30:59 +00:00
2023-03-01 13:30:11 +00:00
def Zh2Int(chars):
result = 0
buffer = 0
2023-03-11 13:29:04 +00:00
buffer2 = 0
2023-03-01 13:30:11 +00:00
prev_is_num = False
2023-03-11 10:48:27 +00:00
if chars == '':
return 1
2023-04-30 03:30:59 +00:00
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]:
2023-03-11 13:29:04 +00:00
buffer2 += buffer
2023-04-30 03:30:59 +00:00
result += buffer2 * ZH_NUM_CHAR_DICT2[c][0]
2023-03-11 13:29:04 +00:00
buffer2 = 0
2023-03-01 13:30:11 +00:00
else:
2023-03-11 13:29:04 +00:00
if buffer == 0:
buffer = 1
buffer2 += buffer * ZH_NUM_CHAR_DICT2[c][0]
2023-03-01 13:30:11 +00:00
buffer = 0
prev_is_num = False
else:
2023-03-11 10:48:27 +00:00
raise ValueError(f"存在无法识别的字符:{c}")
2023-03-11 13:29:04 +00:00
result += buffer2 + buffer
2023-03-11 12:09:27 +00:00
return result