我想知道是否有人可以帮我解决这个问题。 在我正在处理的代码中,我正在创建一个游戏,用户在python 3.3中从文本文件导入的列表中猜出一个单词。我从列表中选择一个随机单词,例如
words = random.randint(0,len(wordlist))
我已经成功,让程序正常工作,但是当用户输入错误时,它会打印分配给它的随机数而不是列表中的单词。例如
else:
print("No, the answer was",words)
我想知道如何打印列表中的单词而不是随机数?
答案 0 :(得分:3)
根本不要使用随机数。改为使用random.choice()
function:
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()
更容易。