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

时间:2014-04-04 17:56:22

标签: python python-3.x random

我想知道是否有人可以帮我解决这个问题。 在我正在处理的代码中,我正在创建一个游戏,用户在python 3.3中从文本文件导入的列表中猜出一个单词。我从列表中选择一个随机单词,例如

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

我已经成功,让程序正常工作,但是当用户输入错误时,它会打印分配给它的随机数而不是列表中的单词。例如

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

我想知道如何打印列表中的单词而不是随机数?

1 个答案:

答案 0 :(得分:3)

根本不要使用随机数。改为使用random.choice() function

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()更容易。