python数字金额转换为中文大写金额(角、分)

初学python,有错望大佬改正,谢谢

编写程序,根据用户输入的金额数字转换成相应的中文大写数字。例如,1002.34转换为“壹仟零贰圆叁角肆分”,100转换为“壹佰圆整”。

list1 = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾']
list2 = ['圆', '拾', '佰', '仟', '萬']

money = str(eval(input("请输入金额:")))  # 预防输入0开头的数字
money2 = ''

money1 = str(int(float(money)))  # 多次类型转换去掉小数点后两位数
for i in range(0, len(money1)):  # 整数转换成中文汉字
    if int(money1[i]) != 0:
        money2 += list1[int(money1[i])] + list2[len(money1) - i - 1]
    else:
        if money2[-1] != "零":
            money2 += "零"

if '.' in money:  # 小数点后两位转换成中文
    if money[-3] == '.':
        money2 += list1[int(money[-2])] + '角'
        money2 += list1[int(money[-1])] + '分'
    elif money[-2] == '.':
        money2 += list1[int(money[-1])] + '角'

if money2[-1] == "零":  # 三种输出格式
    print(money2[0:len(money2) - 1] + "圆整")
elif money2[-1] == '角' or money2[-1] == '分':
    print(money2)
else:
    print(money2 + "整")

你可能感兴趣的:(python,开发语言)