1

現在、ユーザーが入力した単語を検索して、シーケンス (x) を反復処理するコードを作成しようとしています。

以下はコードです。

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
i = -1
while True:
    s = input("Enter a word to search: ")
    if s != "Quit":
        try:
            while i < len(x):
                i = x.index(s, i+1)
                print("found at index", i)
        except ValueError:
            print("Not found")
        i = -1
    else:
        break
print("Goodbye")

上記のコードは反復を通じて正常に機能しますが、シーケンスを反復した後は常に ValueError を返します。以下を追加して、これを修正しようとしました。

while i < len(x):

シーケンスの最後に到達すると反復が停止すると考えていますが、シーケンスから見つかった値を返した後も例外をスローし続けます。

たとえば、ユーザーが「9」を入力すると、次のものが返されます。

found at index 8
Not found
4

3 に答える 3