如何打印分配了随机数的列表中的单词?

0 投票
1 回答
1473 浏览
提问于 2025-04-18 01:23

我在想有没有人能帮我解决这个问题。
在我正在写的代码里,我正在制作一个游戏,用户需要从一个从文本文件中导入的单词列表中猜一个单词。我会从这个列表中随机选择一个单词,比如说:

words = random.randint(0,len(wordlist))

我已经成功让程序运行起来了,不过当用户猜错单词时,它打印出来的是分配给这个单词的随机数字,而不是列表中的单词。例如:

else:
    print("No, the answer was",words)

我想知道怎么才能打印出列表中的单词,而不是那个随机数字呢?

1 个回答

3

不要使用随机数字。可以用random.choice()函数来代替:

words = random.choice(wordlist)

random.choice()会从列表中随机选择一个

你使用random.randint()有两个问题:

  1. 每次想要获取单词时,你都需要使用wordlist[words];其实你根本不需要随机整数,所以存储这个没有意义。但是

    words = wordlist[random.randint(0, len(wordlist))]
    

    这样写比用random.choice()要繁琐得多。

  2. random.randint()会在开始和结束值之间随机选择一个数字,包括这两个值。这意味着你可能会选到正好是len(wordlist)的数字,但在wordlist列表中并没有这个索引;这样会导致IndexError错误。实际上你应该用random.randint(0, len(wordlist)) - 1,或者用random.randrange(len(wordlist))

    不过再次强调,random.choice()就是更简单。

撰写回答