随机单词列表问题

0 投票
5 回答
1236 浏览
提问于 2025-04-16 08:28

好的,到目前为止,我已经创建了一个列表,里面有很多单词,每个单词都在自己的一行上……我想随机挑选一个单词,并且在屏幕上打印出来,同时加上一些额外的信息,显示“定义:(然后是随机挑选的单词)”。不过,当我运行下面的代码时,我只在运行开始时看到一次“定义”这个文本,正如我之前提到的,我希望它在每一行打印时都出现……

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) 

这个小改动可能会有帮助哦 :)。另外,我强烈建议像上面那样打印字符串。

撰写回答