0

我正在创建一个用于玩字谜的单词生成器,它适用于大约六个单词,然后显示“列表索引超出范围”。

这是我的代码:

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))

随机选择

于 2012-11-11T23:12:27.810 回答