PAT 1002 写出这个数,读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

题目:

输入格式:

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。

输出格式:

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。

代码实现:

1.输入操作

a = input()

2.将0-9转换成拼音,用一个列表存放起来

lists_n = ["ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"]

3.将我们输入的值拆分成一个一个可以运算的值,组成一个列表,用 list_n 存放起来

# 将字符串a用for去循环获取值,将获取的值存入列表。
list_n = []
for k in a:
    list_n.append(k)

4.再用一个循环去计算他们之间的和

sum = 0
# 用j去获取列表list_n的值,用来相加。
for j in list_n:
    sum += int(j)
    # 等价
    # sum = sum + int(j)

5.将他们之间的和拆分成一个列表,当成索引,去取 lists_n 里面的值

# 将最后的值转换成字符串,用for循环将他们的和,拆分成一个列表。
for i in str(sum):
    list.append(lists_n[int(i)])

6.最后一步就是输出,join()方法用来将列表转换成字符串输出,“ ”存在的意义是用空格将他们分开

print(" ".join(list))

完整代码:

a = input()
lists_n = ["ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"]
list_n = []
# 将字符串a用for去循环获取值,将获取的值存入列表。
for k in a:
    list_n.append(k)
# print(list_n)
sum = 0
# 用j去获取列表list_n的值,用来相加。
for j in list_n:
    sum += int(j)
    # 等价
    # sum = sum + int(j)
# print(sum)
list = []
# 将最后的值转换成字符串,用for循环将他们的和,拆分成一个列表。
for i in str(sum):
    list.append(lists_n[int(i)])
# print(list)
print(" ".join(list))

猜你喜欢

转载自blog.csdn.net/weixin_62854251/article/details/130201283