1

私はエラーで本当に苦労しています。合言葉よりも少ない文字数の当て推量を入力するたびに、「IndexError: string out of range」が発生します。秘密の単語で推測単語の一致する文字を見つけるためにコードを取得しようとしています。このエラーなしで単語の各インデックスをチェックするにはどうすればよいですか? 文字の長さが 6 文字未満または 6 文字を超える場合、絵文字の色を印刷する必要はありません。推測が 6 文字になるまで、新しい推測を求め続けたいと思います。また、これらの基本的な機能はクラスの割り当てにしか使用できず、それ以上は使用できません。

どんな助けでも大歓迎です!

WHITE_BOX: str = "\U00002B1C"
GREEN_BOX: str = "\U0001F7E9"
YELLOW_BOX: str = "\U0001F7E8"

secret_word: str = "python"
length_of_secret = len(secret_word)

guess_word: str = input(f"What is your {length_of_secret} letter guess? ")
length_of_guess = len(guess_word)

i: int = 0
check_index: int = 0
emoji_color: str = ""

while check_index < length_of_secret:
    if guess_word[check_index] in secret_word[check_index]:
        emoji_color += GREEN_BOX
    else:
        emoji_color += WHITE_BOX
    check_index += 1

while i < length_of_secret:
    if length_of_guess < length_of_secret:
        guess_word = input(f"That was not {length_of_secret} letters! Try again: ")
        length_of_guess = len(guess_word)
        if guess_word == secret_word:
            print(emoji_color)
            print("Woo! You got it!")
            break
        if length_of_guess == length_of_secret:
            print(emoji_color)
            print("Not quite. Play again soon!")
            break
    if length_of_guess > length_of_secret:
        guess_word = input(f"That was not {length_of_secret} letters! Try again: ")
        length_of_guess = len(guess_word)
        if guess_word == secret_word:
            print(emoji_color)
            print("Woo! You got it!")
            break
        if length_of_guess == length_of_secret:
            print(emoji_color)
            print("Not quite. Play again soon!")
            break
    i += 1
    if guess_word == secret_word:
        print("Woo! You got it!")
        print(emoji_color)
        break
    if length_of_guess == length_of_secret:
        print(emoji_color)
        print("Not quite. Play again soon!")
        break

4

1 に答える 1