‘’'输入一个浮点数作为处理对象,将浮点数转为人民币大写形式。
例如:输入:123.45
输出:壹佰贰拾叁元肆角伍分
其中有一些多余的print()函数,用于调试过程中的输出,建议初学者多使用此类输出,便于发现程序中的Bug。
'''输入一个浮点数作为处理对象,将浮点数转为人民币大写形式。
例如:输入:123.45
输出:壹佰贰拾叁元肆角伍分
其中有一些多余的print()函数,用于调试过程中的输出,建议初学者多使用此类输出,便于发现程序中的Bug。
'''
num = float(input("请输入需要转换的数字:"))
# 定义数字拆分函数
def diving(num):
#分离整数部分,float转换为int自动取整数部分-不四舍五入
integer=int(num)
#分离小数部分,取整函数round,四舍五入
fraction=round((num-integer)*100)
return(integer,fraction)
integer,fraction=diving(num)
print(integer,fraction)
#拆分函数(将数字部分分解成元素数组)
def element_diving(element):
element_str=str(element)
element_list=[]
for x in element_str:
element_list.append(x)
return(element_list)
#建立整数、小数部分元素列表
integer_list=element_diving(integer)
fraction_list=element_diving(fraction)
print(integer_list)
print(integer_list[0])
print(fraction_list)
#整数数组分组(4位一组)
def integer_group(integer_list):
integer_group=[]
lens=len(integer_list)
n=int(lens/4)
m=int(lens%4)
if m>0:
for i in range(0,(4-m)):
integer_list.insert(0,'0')
n+=1
i=0
while i<n:
j=0
a_str=''
while j<4:
a_str=a_str+integer_list[i*4+j]
j+=1
integer_group.append(a_str)
i+=1
return(integer_group)
'''
def integer_group(integer_list):
lens=len(integer_list)
n=lens/4
integer_group=list(range(0,n))
i=0
while i<n:
integer_group[i]=integer_list(i:4i)
'''
#整数分组后的变量integer_group
integer_group=integer_group(integer_list)
print(integer_group)
fraction_unit=['角','分']
def four_read(four_ele_str):
table=str.maketrans('0123456789','零壹贰叁肆伍陆柒捌玖')
integer_unit1=['仟','佰','拾','']
four_ele_str=four_ele_str.translate(table)
finial_str=''
i=0
while i<4:
if four_ele_str[i]=='零' and i==0:
i+=1
finial_str='零'
continue
elif four_ele_str[i]=='零':
i+=1
finial_str=finial_str+'零'
continue
finial_str=finial_str+four_ele_str[i]+integer_unit1[i]
i+=1
return(finial_str)
integer_ch_group=[]
for x in integer_group:
a_str=four_read(x)
integer_ch_group.append(a_str)
print(integer_ch_group)
integer_unit=['元','万','亿','兆','京','垓','杼']
integer_ch=''
def combin_str(integer_ch_group,fraction_list):
n=len(integer_ch_group)
integer_ch=''
fraction_ch=''
i=0
j=n-1
while i<n:
integer_ch=integer_ch+integer_ch_group[i]+integer_unit[j]
i+=1
j-=1
table=list('零壹贰叁肆伍陆柒捌玖')
fraction_ch=table[int(fraction_list[0])]+'角'+table[int(fraction_list[1])]+'分'
total_ch=integer_ch+fraction_ch
return(total_ch)
total_ch=combin_str(integer_ch_group,fraction_list)
print(total_ch)