嗨,我是编程新手,我正在努力学习Python。
我试图制作一个程序,将数字转换为数字的单词。 Ex 15将是“十五”。
目前我正在制作一个只处理10-20之间数字的小功能。我已经开始使用这段代码了:
listatva=["tio","elva","tolv","tretton","fjorton","femton","sexton","sjutton","arton","nitton"]
def dole(y):
if 10<=y<20:
y=listatva[y-1]
print y
return
dole(15)
但是当我运行代码时,我收到一条消息:IndexError:list index out of range。
我不明白。请问能解释一下吗? 感谢
答案 0 :(得分:2)
您的问题出在y = listatva[y-1]
,您的问题是dole(15)
y = 15
。{/ p>
所以15 - 1 = 14
并且您的列表中只有ten
个元素。
因此,listatva[14]
将为您提供IndexError
。
尝试使用modulo:y = listatva[y%10]
15 % 10 = 5
,listatva[5] == "femton"
,顺便说一句我不知道“femton”是什么语言,我只是假设它意味着15
;)
答案 1 :(得分:1)
您需要使用dict
而不是list
。 e.g。
d = {1: 'one', 2: 'two', 3: 'three'}
>>> d[1]
'one'