随机单词列表问题
好的,到目前为止,我已经创建了一个列表,里面有很多单词,每个单词都在自己的一行上……我想随机挑选一个单词,并且在屏幕上打印出来,同时加上一些额外的信息,显示“定义:(然后是随机挑选的单词)”。不过,当我运行下面的代码时,我只在运行开始时看到一次“定义”这个文本,正如我之前提到的,我希望它在每一行打印时都出现……
words = ['''
word1
word2
word3
''']
while len(words) > 0:
word = "Define:"+random.choice(words)
print word
words.remove(word)
5 个回答
1
错误出在这里:
words = ['''
word1
word2
word3
''']
这是一个只有一个元素的列表(一个很长的字符串),而不是一个单词的列表。你可以这样做:
words = '''
word1
word2
word3
'''.splitlines()
你也可以把其余的部分做得更简单一些。因为你想要随机打印所有单词,所以不如直接把列表打乱顺序:
random.shuffle(words)
for word in words:
print "Define:", word
2
“Words”需要是一个真正的列表
#Wrong
words = ['''
word1
word2
word3
''']
#Better
words = ['word1','word2','word3']
你只会得到一次提示,因为你使用的列表长度是1。
1
words = [
'word1',
'word2',
'word3',
]
while len(words) > 0:
word = random.choice(words)
print "Define: %s" % word
words.remove(word)
这个小改动可能会有帮助哦 :)。另外,我强烈建议像上面那样打印字符串。