打印时出现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"