把中文数字转化成阿拉伯数字--千亿内

写累了,直接看代码吧
里面还是有很多重复性的代码,有待提高

# 获取列表下标
def xbiao(ge):
    x = 0
    while x < 10:
        if ge == ltwo[x]:
            ff3 = x
            break
        else:
            x = x + 1
    return x


# 找出万的下标
def zwanb(aa, list):
    i = 0
    while i < aa:
        if list[i] == '万':
            xbb1 = i
            break
        else:
            i = i + 1
    return i


# 找出亿的下标
def zyib(aa, list):
    i = 0
    while i < aa:
        if list[i] == '亿':
            xbb = i
            break
        else:
            i = i + 1
    return xbb


# 计算


# 读亿万的数
def duyw():
    aa = len(lzwsz)
    j1 = zyib(aa, lzwsz)
    lj1 = list(lzwsz[:j1])
    print(lj1)
    sum112 = int(dushu(lj1)) * 100000000
    print(sum112)
    lj2 = list(lzwsz[j1 + 1:])
    sum13 = sum112

    if '万' in lzwsz:
        aa1 = len(lj2)
        j21 = zwanb(aa1, lj2)
        print(j21)
        lj21 = list(lj2[:j21])
        print(lj21)
        sum113 = int(dushu(lj21)) * 10000
        sum13 = sum13 + sum113
        print(sum113)
        laa = list(lj2[j21 + 1:])
        cc = len(laa)
        if cc == 0:
            pass
        else:
            sum12 = int(dushu(laa))
            sum13 = int(sum13) + int(sum12)
    else:
        print("无万")
        aa2 = len(lj2)
        if aa2 != 0:
            sum12 = dushu(lj2)
            sum13 = sum12 + sum13

    return sum13

# 读万的数
def duw():
    aa = len(lzwsz)
    j1 = zwanb(aa, lzwsz)
    lj1 = list(lzwsz[:j1])
    laa = list(lzwsz[j1 + 1:])
    aaa = len(lj1)
    a = 0
    sum12 = int(dushu(lj1))
    sum12 = sum12 * 10000
    sum13 = int(dushu(laa))
    sum13 = int(sum12) + int(sum13)
    return sum13


# 读千以内的数字
def dushu(list):
    a = 0
    aa = len(list)
    sum1 = 0
    ge = list[aa - 1]
    if ge not in lone:
        ff1 = xbiao(ge)
        sum1 = sum1 + ff1
    while a < aa:
        ee = list[a]
        if ee in lone:
            c1 = lone[ee]
            d1 = list[a - 1]
            f1 = xbiao(d1)
            g1 = int(f1) * int(c1)
            sum1 = sum1 + g1
            a = a + 1
        else:
            a = a + 1
    return sum1


done = {'亿': '100000000', '万': '10000'}
lone = {'千': '1000', '百': '100', '十': '10'}
ltwo = ['A', '一', '二', '三', '四', '五', '六', '七', '八', '九']
# 九千九百九十九亿九千九百九十九万九千九百九十九
zwsz = '九千九百九十九亿九千九百九十九万一千'
lzwsz = list(zwsz)
print(lzwsz)
if '亿' in lzwsz:
    print("亿在")
    if '万' in lzwsz:
        print("万也在")
        sum22 = duyw()
        print(sum22)
    else:
        print("亿在万不在")
        sum22 = duyw()
        print(sum22)


else:
    print("亿不在")
    if '万' in lzwsz:
        print("万在")
        sum22 = duw()
        print(sum22)
    else:
        print("万也不在")
        sum22 = dushu(lzwsz)
        print(sum22)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值