Python 如何修复TypeError:';文件';对象不可订阅
我是python新手,不太了解我的问题,非常感谢您的帮助。不管怎么说,这就是编码的路线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 在
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
将成为一个文件对象,这几乎肯定不是你想要的。你想用那条线干什么?