描述:
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:
0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu
输入格式:
输入在一行中给出一个整数,如:1234。
提示:整数包括负数、零和正数。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si。
输入样例:
-600
输出样例:
fu liu ling ling
解析:
- 输入一个数字,字符串形式
可以构建一个列表,元素为从0到9的拼音,为方便,将负号“-”的拼音加到列表,作为最后一个元素:
ls=[‘ling’,‘yi’,‘er’,‘san’,‘si’,‘wu’,‘liu’,‘qi’,‘ba’,‘jiu’,‘fu’]
遍历字符串:
- 如果遍历到的元素是“-”则输出列表最后一个元素
- 否则,将遍历到的字符转整数,输出列表中以这个整数为序号的元素
题目的输出中还有一个格式控制,要求各元素间用空格分隔,但最后一个元素后不能有空格。有以下几种方法可以实现:
- 先输出除最后一个元素以外的其余元素,用空格做结束符,end = ‘ ‘,再输出最后一个元素
- 先输出第一个元素,再遍历输出其他元素,输出时在元素前中一个空格,结束符用空字符串,end = ‘’
- 创建一个空列表,遍历时用append()方法将得到的元素加到列表中,再输出列表元素,默认为空格分隔
- 用列表推导式直接把遍历到的元素放到列表中,再输出列表元素
# 先输出除最后一个元素以外的其余元素,用空格字符串做结束符,end = ' ',再输出最后一个元素
num=input()
ls,l=['ling','yi','er','san','si','wu','liu','qi','ba','jiu','fu'],[]
for i in num[:-1]:
if i == '-':
print(ls[-1],end = ' ')
else:
print(ls[int(i)],end = ' ')
print(ls[int(num[-1])])
# 先输出第一个元素,再遍历输出其他元素,输出时在元素前加一个空格,结束符用空字符串,end = ''
num=input()
ls,l=['ling','yi','er','san','si','wu','liu','qi','ba','jiu','fu'],[]
for i in num:
if i == '-':
print(ls[-1],end = ' ')
elif num.index(i) == 1:
print(ls[int(i)], end='')
else:
print(' ' + ls[int(i)],end = '')
# 创建一个空列表,遍历时用append()方法将得到的元素加到列表中,再输出列表元素,默认为空格分隔
num=input()
ls=['ling','yi','er','san','si','wu','liu','qi','ba','jiu','fu']
l = []
for i in num:
if i == '-':
print(ls[-1],end = ' ')
else:
l.append(ls[int(i)])
print(*l) # 解包,输出列表l中的元素,默认用空格分隔
# 用列表推导式直接把遍历到的元素放到列表中,再输出列表元素
num=input()
ls=['ling','yi','er','san','si','wu','liu','qi','ba','jiu','fu']
if num[0] == '-':
print(ls[-1],end = ' ')
else:
l = [ls[int(i)] for i in num]
print(*l)
此方法是简单的二分支,可以用条件运算实现:
num=input()
ls=['ling','yi','er','san','si','wu','liu','qi','ba','jiu','fu']
print(ls[-1],end = ' ') if num[0] == '-' else print(*[ls[int(i)] for i in num])