问题介绍
前面我们已经讲述了如何输入“1234567890”转换成“一二三四五六七八九零”,分别运用了条件语句和循环语句解答这个问题。
现在这个问题是:将数字“一二三四五六七八九十”转化成汉字大写的“壹, 贰,叁,肆,伍,陆,柒,捌,玖,拾”。
问题分析
乍看之下,我们可以看出这道题的解题思路应该与前面的问题相差不大,唯一的区别就是当输入数字形式的“1234567890”时,我们可以利用eval()函数将数字直接作为对字符串进行切片、索引时的序号使用。
而数字形式的“一二三”无法作为序号去使用,那么我们要找到一个办法,使其可以生成供我们进行索引、切片的序号,而最终就是利用这个序号在“壹, 贰,叁,肆,伍,陆,柒,捌,玖,拾”中进行索引即可。
代码思路
我们可以利用循环语句与条件语句分别对这道题进行解答。
循环语句解答
输入:首先我们的程序需要一个外界输入的字符串,由“一二三四五六七八九十”构成。
过程:
1.建立一个有序字符串“known_s”,“一二三四五六七八九十”
2.建立一个有序字符串“tar_s”,“壹, 贰,叁,肆,伍,陆,柒,捌,玖,拾”
3.将输入字符串逐个对输入内容与“known_s”比较,得到序号,然后利用得到的序号对“tar_s”进行索引,得到对应汉字。
输出:我们需要输出对应于输入的字符串的汉字“壹, 贰,叁,肆,伍,陆,柒,捌,玖,拾”。
代码内容
Nu=input()
z=''
known_s="