Python中有一个开源库可以将汉字数字转换为阿拉伯数字吗?
输入:10亿2千9百万
输出:1,029,000,000
输入:1亿6,717万2,600
输出:167,172,600
输入:3,139 百万
输出:3,139,000,000
Python中有一个开源库可以将汉字数字转换为阿拉伯数字吗?
输入:10亿2千9百万
输出:1,029,000,000
输入:1亿6,717万2,600
输出:167,172,600
输入:3,139 百万
输出:3,139,000,000
这应该有效:
import kanjinums
kanjinums.kanji2num("五百十一")
下载并安装kanjinums后,很遗憾无法通过 pip 获得。
编辑:这仅适用于基本数字,而不是提到的复杂情况。
稍加修改,这实际上可以工作,例如:
3139*kanjinums.kanji2num("百万")
3139000000
这实际上可以在函数中相对容易地完成:
def convert_kanji(self, zahl):
japnumber = ("兆", "億", "万")
jap_factors = {
"兆": 1000000000000,
"億": 100000000,
"万": 10000
}
#Define the variables
converted_number = 0
already_found = False
found_kanji_previous = 0
try: #If the number can be returned as an integer (i.e. no Kanji in it) -> do it
return(int(zahl))
except ValueError: #If not, disintegrate it
for key in japnumber: #do it for every Kanji
if key in zahl: #If it has been found in the original string:
gef_kanji = zahl.find(key) #mark, which Kanji has been found
if not already_found: #if it is the first kanji:
intermediate_step = int(zahl[:gef_kanji]) * jap_factors[key] #Convert the number in front of the Kanji with the appropriate factor
converted_number = intermediate_step
already_found = True
found_kanji_previous = gef_kanji
else: #for sll other kanjis
intermediate_step = int(zahl[found_kanji_previous+1:gef_kanji]) * jap_factors[key]
converted_number = converted_number + intermediate_step #sum them up
found_kanji_previous = gef_kanji
if len(zahl) > (found_kanji_previous+1):
converted_number = converted_number + int(zahl[found_kanji_previous+1:])
return converted_number
这个还是比较简单的。只能接受2314兆3424亿3422万2342形式的数字。
代码也可能非常糟糕,因为这实际上是我很长一段时间以来的第一个程序。但这对您来说可能是一个很好的起点。
实际上,我目前正在开发一个简单的转换器,它将日本数字转换为易于阅读的西方数字(例如将 231 亿转换为“230 亿 1 亿”;它实际上已经这样做了)。我想还有很多事情要做,例如全角字符、完全用汉字的数字等。如果我已经解决了所有这些问题,我可能会像 kanjinums 一样上传它:D