打印时出现Python类型错误
我正在尝试转换伪代码;我有一个类型错误,但我不确定为什么会有错误。我尝试过改变,但我不确定哪一点是错的打印时出现Python类型错误,python,typeerror,Python,Typeerror,我正在尝试转换伪代码;我有一个类型错误,但我不确定为什么会有错误。我尝试过改变,但我不确定哪一点是错的 File "C:\Users\ClassyMelon\Downloads\mrocedures.py", line 46, in Menu DisplayWeight(Type, Weight, Volume) File "C:\Users\ClassyMelon\Downloads\mrocedures.py", line 24, in DisplayWeight p
File "C:\Users\ClassyMelon\Downloads\mrocedures.py", line 46, in Menu
DisplayWeight(Type, Weight, Volume)
File "C:\Users\ClassyMelon\Downloads\mrocedures.py", line 24, in DisplayWeight
print (str(Volume)), "g", "of", Metals[Type], "weighs", Weight, "g"
TypeError: list indices must be integers or slices, not str
代码:
类型是一个字符串:实际上它已经是“金”、“银”或“铂”中的一个(!)。因此,在由相同字符串组成的列表中查找它是没有意义的。这行代码就是问题所在:
print (str(Volume)), "g", "of", Metals[Type], "weighs", Weight, "g"
特别是
金属[Type]
件<代码>金属是一个列表,通过整数索引访问列表,即金属[0]
或金属[5]
。但是在你的代码中,Type
是一个字符串,你不能使用字符串作为列表索引。Metals
是一个列表,Type
是一个字符串-你到底希望Metals[Type]
做什么?此外,您还应该真正阅读样式指南:stacktrace非常明确:您编写了Metals[Type]
,但是Type
是一个字符串,应该是一个int。这个答案不包含任何不在回溯中的信息!。。。很明显,OP不理解回溯,那么你想说明什么呢?但你实际上并没有解释任何事情,你使用的是与错误消息基本相同的词语;如果OP不理解回溯,为什么他们会理解?我不同意我没有解释任何事情。
print (str(Volume)), "g", "of", Metals[Type], "weighs", Weight, "g"