def divide(num): #数字分解成证书和分数
integer = int(num)
fraction = round((num - integer) * 100)
return (str(integer),str(fraction))
han_list = [“零”, ‘壹’, ‘贰’, ‘叁’, ‘肆’, ‘伍’, ‘陆’, ‘柒’, ‘捌’, ‘玖’]
unit_list = [‘十’, ‘百’, ‘千’]
def four_to_hanstr(num_str): #将整数部分转化成汉字大写,并按数字读法处理数字
result = “”
num_len = len(num_str)
for i in range(num_len): #将“数字”转化为汉字并加上单位
num = int(num_str[i])
if i != num_len -1 and num != 0:
result += han_list[num] + unit_list[num_len-2-i]
else:
result += han_list[num]
trans = list(result)
trans_len = len(trans)
while trans_len >= 4: #按数字读法处理数字
if trans[0]==trans[1]==trans[2]trans[3]“零”:
del trans[:]
break
elif trans[0]==trans[1]trans[2]“零”:
del trans[0:2]
break
elif trans[2]trans[3]“零”:
del trans[2]
break
else:
break
result = “”.join(trans)
return result
def fra_to_hanstr(fra_str): #将分数部分转化成汉字大写
result1 = “”
fra_len = len(fra_str)
for i in range(fra_len):
num = int(fra_str[i])
if i != fra_len -1 and num != 0:
result1 += han_list[num]
else:
result1 += han_list[num]
return result1
def integer_to_str(num_str): #将num_str转化为汉字字符串
str_len = len(num_str)
if str_len > 12 :
print(‘The number is too big!’)
return
elif str_len > 8 and num_str[-8:-4]==“0000”:
return four_to_hanstr(num_str[:-8]) + “亿” + four_to_hanstr(num_str[-4:])
elif str_len > 8 and num_str[-8:-4]!=“0000”:
return four_to_hanstr(num_str[:-8]) + “亿” + four_to_hanstr(num_str[-8:-4]) + “万” + four_to_hanstr(num_str[-4:])
elif str_len > 4:
return four_to_hanstr(num_str[:-4]) + “万” + four_to_hanstr(num_str[-4:])
else:
return four_to_hanstr(num_str)
num = float(input(“Please enter one float number:”))
integer, fraction = divide(num)
print(fraction)
if fraction == “0”:
print(integer_to_str(integer) + “元”)
else:
result_end = integer_to_str(integer) + “点” + fra_to_hanstr(fraction) + “元”
print(result_end)
#程序写的比较粗糙,不够精炼。欢迎指正!