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行目にあるように見え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()returnステートメントを見ると問題があります。これがtoyota()returnステートメントです。

return chances, Tire, Km, Insurance, chairs

この問題は、Pythonで複数の値を返すときに順序が重要であり、返す順序と割り当てる順序が一致しないという事実から発生します。

ここでは、の値を返し、Tireそれを変数に割り当てていますchairschairs後で、関数で使用しようとするBankerと、自分が思っているオブジェクトを操作していません。

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

ここで、 sの値が間違った順序で返された/割り当てられたため、runningはではなくtype(chairs)を返します。■インデックスを作成できないため、プログラムでエラーがスローされます。Filelisttoyota()File

于 2013-02-20T02:03:31.843 に答える