如何打印分配了随机数的列表中的单词?
我在想有没有人能帮我解决这个问题。
在我正在写的代码里,我正在制作一个游戏,用户需要从一个从文本文件中导入的单词列表中猜一个单词。我会从这个列表中随机选择一个单词,比如说:
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()
有两个问题:
每次想要获取单词时,你都需要使用
wordlist[words]
;其实你根本不需要随机整数,所以存储这个没有意义。但是words = wordlist[random.randint(0, len(wordlist))]
这样写比用
random.choice()
要繁琐得多。random.randint()
会在开始和结束值之间随机选择一个数字,包括这两个值。这意味着你可能会选到正好是len(wordlist)
的数字,但在wordlist
列表中并没有这个索引;这样会导致IndexError
错误。实际上你应该用random.randint(0, len(wordlist)) - 1
,或者用random.randrange(len(wordlist))
。不过再次强调,
random.choice()
就是更简单。