Python 3.x 索引器错误:列表索引超出范围:尝试将数字显示为英文单词时

Python 3.x 索引器错误:列表索引超出范围:尝试将数字显示为英文单词时,python-3.x,Python 3.x,我刚开始学习编程,我尝试制作一个简单的prg,将输入的数字显示为英语,最高可达999,它在99之前都能正常工作,但当它达到100时,我会出现以下错误: 请帮助我理解我做错了什么 print('Print digits into english upto 999') words_upto_ninteen=['','One','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Eleven','Tweleve','Thirt

我刚开始学习编程,我尝试制作一个简单的prg,将输入的数字显示为英语,最高可达999,它在99之前都能正常工作,但当它达到100时,我会出现以下错误: 请帮助我理解我做错了什么

print('Print digits into english upto 999')
words_upto_ninteen=['','One','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Eleven','Tweleve','Thirteen','Fourteen','Fifteen', 'Sixteen','Seventeen','Eighteen','Nineteen']

words_tens=['','','Twenty','Thirty','Fourty','Fifty','Sixty','Seventy','Eighty','Ninty']

words_hundreds=[' ','One Hundred','Two Hundred','Three Hundred','Four Hundred','Five Hundred','Six Hundred','Seven Hundred','Eight Hundred','Nine Hundred']

n=int(input("Please enter digits 0 to 999:"))
output=''
if n==0:
    output='zero'
elif n<=19:
    output=words_upto_ninteen[n]
elif n<=99:
    output=words_tens[n//10]+"  "+ words_upto_ninteen[n%10]
elif n<=999:
    output=words_hundreds[n//100]+" "+ words_tens[n//10]+" "+ words_upto_ninteen[n%10]

else:
    output=print('Please enter value upto 999')
print(output)
print('###########################################################################################')
print('print digits to english to 999')
单词“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”、“十”、“十一”、“十二”、“十三”、“十四”、“十五”、“十六”、“十七”、“十八”、“十九”]
单词十=['','二十','三十','四十','五十','六十','七十','八十','九十']
单词_百=['','一百','二百','三百','四百','五百','六百','七百','八百','九百']
n=int(输入(“请输入数字0到999:”)
输出=“”
如果n==0:
输出='0'

elif n此解决方案将起作用:

print('Print digits into english upto 999')
words_upto_ninteen=['','One','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Eleven','Tweleve','Thirteen','Fourteen','Fifteen', 'Sixteen','Seventeen','Eighteen','Nineteen']

words_tens=['','','Twenty','Thirty','Fourty','Fifty','Sixty','Seventy','Eighty','Ninty']

words_hundreds=[' ','One Hundred','Two Hundred','Three Hundred','Four Hundred','Five Hundred','Six Hundred','Seven Hundred','Eight Hundred','Nine Hundred']

n=int(input("Please enter digits 0 to 999:"))
output=''
if n==0:
    output='zero'
elif n<=19:
    output=words_upto_ninteen[n]
elif n<=99:
    output=words_tens[n//10]+"  "+ words_upto_ninteen[n%10]
elif n<=999:
    output=words_hundreds[n//100]+" "+ words_tens[(n//10)%10]+" "+ words_upto_ninteen[n%10]

else:
    output=print('Please enter value upto 999')
print(output)
print('###########################################################################################')
print('print digits to english to 999')
单词“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”、“九”、“十”、“十一”、“十二”、“十三”、“十四”、“十五”、“十六”、“十七”、“十八”、“十九”]
单词十=['','二十','三十','四十','五十','六十','七十','八十','九十']
单词_百=['','一百','二百','三百','四百','五百','六百','七百','八百','九百']
n=int(输入(“请输入数字0到999:”)
输出=“”
如果n==0:
输出='0'

elif n当遇到错误IndexOutfrance时,访问一个不存在的数组字段。如果达到数字100,则案例elif n
433//10
43
,这是
>len(单词)
什么是
443//10
?你的名单上有那么多的项目吗?这里有一些免费的调试提示谢谢您的回答,我真的很有帮助,我真的很想念模运算符,现在它清除了…很高兴它有帮助:)谢谢您的解释,这真的很有帮助,非常感谢。请单击我文本旁边的上三角给一个肯定的评级。非常感谢你
print('Print digits into english upto 999')
words_upto_ninteen=['','One','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Eleven','Tweleve','Thirteen','Fourteen','Fifteen', 'Sixteen','Seventeen','Eighteen','Nineteen']

words_tens=['','','Twenty','Thirty','Fourty','Fifty','Sixty','Seventy','Eighty','Ninty']

words_hundreds=[' ','One Hundred','Two Hundred','Three Hundred','Four Hundred','Five Hundred','Six Hundred','Seven Hundred','Eight Hundred','Nine Hundred']

n=int(input("Please enter digits 0 to 999:"))
output=''
if n==0:
    output='zero'
elif n<=19:
    output=words_upto_ninteen[n]
elif n<=99:
    output=words_tens[n//10]+"  "+ words_upto_ninteen[n%10]
elif n<=999:
    output=words_hundreds[n//100]+" "+ words_tens[(n//10)%10]+" "+ words_upto_ninteen[n%10]

else:
    output=print('Please enter value upto 999')
print(output)
print('###########################################################################################')