4

我对python有点陌生,并不太了解我的问题,非常感谢您的帮助。无论如何,这是编码行。

def Banker(warrior):
    gold = open(chairs[warrior-1], "strength")
    return gold

这是我得到的错误。

line 22, in Banker
    gold = open(chairs[warrior-1], "strength")
TypeError: 'file' object is unsubscriptable

http://pastebin.com/1wMbaSYY

4

2 回答 2

0

在第 19 行的 pastebin 链接上,toyota()您有:

return chances, Tire, Km, Insurance, chairs

它返回一个元组中的所有这些值(即使没有括号)。但是,这是在第 58 行调用的:

chances, chairs, insurance, km, tire = toyota()

它将返回的元组中的值分配给左侧给出的变量。这些元组的顺序应该正确。在这里,您使用Tireas的值chairs

于 2013-02-20T01:59:39.193 回答
0

发现你的问题。第 58 行是给您带来麻烦的原因。这里是:

chances, chairs, insurance, km, tire = toyota()

这没什么错,但是当我们查看toyota()s return 语句时,有一个问题。这是toyota()返回语句:

return chances, Tire, Km, Insurance, chairs

问题在于在 Python 中返回多个值时顺序很重要,并且返回的顺序和分配的顺序不匹配。

在这里,您将返回 的值Tire并将其分配给变量chairs。稍后,当您尝试chairsBanker函数中使用时,您并没有使用您认为的对象。

gold = open(chairs[warrior-1], "strength")

在这里, runningtype(chairs)将返回File,而不是list,因为toyota()s 值以错误的顺序返回/分配。Files 不能被索引,这就是导致你的程序抛出错误的原因。

于 2013-02-20T02:03:31.843 回答