0

シャレードを再生するためのワードジェネレーターを作成しています。これは約6ワードで機能し、「リストインデックスが範囲外です」と表示されます。

これは私のコードです:

def selection(word):
    while True:
        from random import randint
        sel = randint(1,10)
        print(word[sel])
        input("\nPress enter to select a new word.")

print("Type in ten words to add to the list.")
words = []
words.append(input("1st word: "))
words.append(input("2nd word: "))
words.append(input("3rd word: "))
words.append(input("4th word: "))
words.append(input("5th word: "))
words.append(input("6th word: "))
words.append(input("7th word: "))
words.append(input("8th word: "))
words.append(input("9th word: "))
words.append(input("10th word: "))
input("\nPress enter to randomly select a word.")
selection(words)
4

2 に答える 2

6

1現在、との間の数字を選択してい10ます。Pythonリストは0 indexedであるため、との間の数字を選択する必要が0あり9ます。

sel = randint(0, 9)

これは、このchoice()関数を使用するのにも適した場所です。シーケンス(リストなど)からランダムな要素を選択します。

random_word = random.choice(words)
于 2012-11-11T23:11:49.023 に答える
0

また、実際には答えではありませんが、あなたはすることができます

for i in xrange(0, 9):
    words.append(input("{0}st word: ".format(i + 1))

また

random.choice

于 2012-11-11T23:12:27.810 に答える