Python 如何修复TypeError:';文件';对象不可订阅

Python 如何修复TypeError:';文件';对象不可订阅,python,Python,我是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 在

我是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

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

return chances, Tire, Km, Insurance, chairs
它返回元组中的所有值(即使没有括号)。但是,这在第58行中被称为:

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

它将返回的元组中的值分配给左侧给定的变量。这些元组的顺序应该正确。这里,您使用的是
Tire
的值,因为
chairs

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

chances, chairs, insurance, km, tire = toyota()
这没什么错,但是当我们看
toyota()
s的return语句时,有一个问题。这是丰田()的返回语句:

return chances, Tire, Km, Insurance, chairs
问题产生于这样一个事实,即在Python中返回多个值时顺序很重要,并且返回的顺序和赋值的顺序不匹配

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

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

在这里,运行
type(chairs)
将返回
文件
,而不是
列表
,因为
toyota()
s值的返回/分配顺序错误<代码>文件
s无法编入索引,这就是导致您的程序出错的原因。

请将您的全部代码发布到并编辑您的帖子以包含链接,好吗?您是否覆盖了内置的
打开
功能?谢谢james,我刚刚完成了,我不确定是否美观。您能更新您的答案以包含在“简明英语”中吗-您想要实现什么?即使您解决了这个问题,
open(chairs[warrior-1],“strength”)
也会引发一个
ValueError
,因为
“strength”
不是有效的文件模式字符串。而且,即使你已经过了这一关,
gold
将成为一个文件对象,这几乎肯定不是你想要的。你想用那条线干什么?