本文目录一览:
Python 将中文大写数字转为阿拉伯数字
平时会碰到把中文大写的金额转为阿拉伯数字,比如叁仟伍佰陆拾玖元肆角需要转为3569.4,尝试编写函数如下:
上例测试输出为:
八转换为阿拉伯数字为8
十一转换为阿拉伯数字为11
一百二十三转换为阿拉伯数字为123
一千二百零三转换为阿拉伯数字为1203
上交金额伍拾陆万柒仟零肆角转换为阿拉伯数字为567000.4
十万零三千六百零九转换为阿拉伯数字为103609
一百二十三万四千五百六十七转换为阿拉伯数字为1234567
一千一百二十三万四千五百六十七转换为阿拉伯数字为11234567
捌亿柒仟零肆拾陆万贰角捌分转换为阿拉伯数字为870460000.28
一百零二亿五千零一万零一千零三十八转换为阿拉伯数字为10250011038
壹兆零六百二十三亿五千五百万五百零捌元叁角柒分转换为阿拉伯数字为1062355000508.37
python3 将中文句子中汉字数字转阿拉伯数字
import re
s ='五百八十二元3角六分'
s = re.sub('一','1',s)
s = re.sub('二','2',s)
s = re.sub('三','3',s)
s = re.sub('四','4',s)
s = re.sub('五','5',s)
s = re.sub('六','6',s)
s = re.sub('七','7',s)
s = re.sub('八','8',s)
s=re.sub('九','9',s)
print(s)
a_list = re.findall('\d\D+',s) #type:list
print(a_list)
for a in range(len(a_list)): #type:int
('缩进')if a_list[a].endswith('百'):
('缩进')('缩进')a_list[a]=int(a_list[a][0]+'00')
('缩进')elif a_list[a].endswith('十'):
('缩进')('缩进')a_list[a] = int(a_list[a][0] + '0')
('缩进')elif a_list[a].endswith('元'):
('缩进')('缩进')a_list[a] = int(a_list[a][0])
('缩进')elif a_list[a].endswith('角'):
('缩进')('缩进')a_list[a] = float('0.'+a_list[a][0])
('缩进')elif a_list[a].endswith('分'):
('缩进')('缩进')a_list[a] = float('0.0'+a_list[a][0])
print(sum(a_list))
print(round(sum(a_list),2))
python中将阿拉伯数字转换为中文
第一种方案:
def num_to_char(num):
"""数字转中文"""
num=str(num)
new_str=""
num_dict={"0":u"零","1":u"一","2":u"二","3":u"三","4":u"四","5":u"五","6":u"六","7":u"七","8":u"八","9":u"九"}
listnum=list(num)
# print(listnum)
shu=[]
for i in listnum:
# print(num_dict[i])
shu.append(num_dict[i])
new_str="".join(shu)
# print(new_str)
return new_str
第二种方案
_MAPPING = (u'零', u'一', u'二', u'三', u'四', u'五', u'六', u'七', u'八', u'九', u'十', u'十一', u'十二', u'十三', u'十四', u'十五', u'十六', u'十七',u'十八', u'十九')
_P0 = (u'', u'十', u'百', u'千',)
_S4 = 10 ** 4
def _to_chinese4(num):
assert (0 = num and num _S4)
if num 20:
return _MAPPING[num]
else:
lst = []
while num = 10:
lst.append(num % 10)
num = num / 10
lst.append(num)
c = len(lst) # 位数
result = u''
for idx, val in enumerate(lst):
val = int(val)
if val != 0:
result += _P0[idx] + _MAPPING[val]
if idx c - 1 and lst[idx + 1] == 0:
result += u'零'
return result[::-1]