数字形式转换,输入0123456789对应输出“一二三四五六七八九”

数字形式转换

描述

获得用户输入的一个正整数输入,输出该数字对应的中文字符表示。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

0到9对应的中文字符分别是:零一二三四五六七八九‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入输出示例

输入
1
123
9876543210
输出

一二三
九八七六五四三二一零

分析问题

1.要求是将阿拉伯数字转成中文数字,单向转换;
2.输入要求是只有阿拉伯数字的字符串;
3.转换过程是对输入数据逐个识别并一一转换成中文数字;
4.输出要求是输出中文数字的字符串。

程序内容

Nu=input() 		#将输入内容强制设置为字符串格式
b=len(Nu) 		# 使用len()函数得到输入内容长度
c=0		#作为循环变量时的计数器
z=''		#将z设置成字符串格式,最终的输出载体
for i in range(b):		#for  in循环,将嵌套内容循环输入阿拉伯数字个数次
    if eval(Nu[c])==0:		#判断阿拉伯数字是几,将其一对一换成中文数字
        z+="零"
        c+=1
    elif eval(Nu[c])==1:
        z+="一"
        c+=1
    elif eval(Nu[c])==2:
        z+="二"
        c+=1
    elif eval(Nu[c])==3:
        z+="三"
        c+=1
    elif eval(Nu[c])==4:
        z+="四"
        c+=1
    elif eval(Nu[c])==5:
        z+="五"
        c+=1
    elif eval(Nu[c])==6:
        z+="六"
        c+=1
    elif eval(Nu[c])==7:
        z+="七"
        c+=1
    elif eval(Nu[c])==8:
        z+="八"
        c+=1
    elif eval(Nu[c])==9:
        z+="九"
        c+=1
print(z)

以上就是数字形式转换的一个解答,但是可以看到,代码行数非常多,那么有没有简单的方法解答这个问题呢?请看下面的解:

程序内容2

#numbertransfer.py
num=input()
numstr="零一二三四五六七八九"
n=""
i=0
while i<len(num):
    n=n+numstr[eval(num[i])]
    i+=1
print(n)

这个就是数字转换问题的第二个解。
其中运用了字符串的相关知识,字符串函数len()是计算字符串长度,而后面利用while循环语句,对转换字符串进行逐一转换并累积赋值。输出最后结果即可。

传送门

看完阿拉伯数字转换成中文数字后,请思考一下,如果给出的是中文的一二三四五六七八九十,如何将它转变成汉字大写的“壹, 贰,叁,肆,伍,陆,柒,捌,玖,拾”呢?

有兴趣的朋友请看我的另一篇博文,《条件语句与循环语句:将数字一二三四五六七八九十转化成汉字大写的壹, 贰,叁,肆,伍,陆,柒,捌,玖,拾》

https://blog.csdn.net/PigeonKiing/article/details/102457090

    原文作者:PigeonKiing
    原文地址: https://blog.csdn.net/PigeonKiing/article/details/101541086
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞