0

こんにちは、問題が発生しました。タイプ エラーが発生した理由がわかりません。エラーの内容と修正方法を説明してください。よろしくお願いします。

abb = raw_input("Abbreviation: ")
text = raw_input("Text: ")
text = text.lower().split()
abb = abb.lower().split
list1 = []
i = 0
j = 0

while i < len(text):
    for i in range(len(text)):
        if text[i].startswith(abb[0]):
            list1.append(text[i])
            for i in range(len(text)):
                if text[i].startswith(abb[1]):
                    list1.append(text[i])
                    for i in range(len(text)):
                        if text[i].startswith(abb[2]):
                            list1.append(text[i])
4

4 に答える 4

6

あなたのラインをチェックしてください

abb = abb.lower().split

(そして、その上の正しい行と比較してください)。関数を呼び出すのではなく、メソッド自体abbと同じオブジェクトに割り当てるだけです。split

したがって、 を試すとabb[0]、関数自体に添字を付けようとします。

于 2012-09-09T10:30:49.490 に答える
1

に変更abb = abb.lower().splitabb = abb.lower().split()ます。

于 2012-09-09T10:29:04.000 に答える
0

4行目に、

abb = abb.lower().split

それを呼び出す代わりに、小文字の abb 文字列の分割関数が得られます。上記のコードを次のように変更するだけです。

abb = abb.lower().split()

前の行で文字列テキストを使用してコードで行ったのと同じように。

于 2012-09-09T12:39:15.773 に答える
0

これは、角括弧表記 (イテラブルを「添字」すること) を使用しているコードのある時点で、イテラブルではないことを意味します。文字列があると思われる場所に、実際には関数があります。

とにかく、それがエラーメッセージがあなたに伝えていることです。このようなコードをデバッグするときは、たくさんの print ステートメントをドロップして、どこが間違っているのかを確認してください。

于 2012-09-09T10:30:00.747 に答える