在pythonshell中清除屏幕

在pythonshell中清除屏幕,python,shell,Python,Shell,我对这个程序以及如何清除屏幕感到有点困惑wordList.RemoveAndOM.choicewordList->我假设这一行是为了从上面的行中删除随机选择的单词,这样就不会重复,但实际上你只是告诉程序从列表中删除一个随机元素,独立于先前选择的一个 word = random.choice(wordList) wordsToGuess.append(word) wordList.remove(word) 我认为您是在循环中使用这个函数,或者是在重复这个函数,如果您是,那么您需要将列表移出这个函

我对这个程序以及如何清除屏幕感到有点困惑

wordList.RemoveAndOM.choicewordList->我假设这一行是为了从上面的行中删除随机选择的单词,这样就不会重复,但实际上你只是告诉程序从列表中删除一个随机元素,独立于先前选择的一个

word = random.choice(wordList)
wordsToGuess.append(word)
wordList.remove(word)

我认为您是在循环中使用这个函数,或者是在重复这个函数,如果您是,那么您需要将列表移出这个函数。因为每次调用它时,它都会一次又一次地生成相同的列表。

执行此代码时:

wordsToGuess.append(random.choice(wordList))
wordList.remove(random.choice(wordList))
你要做的是在单词猜测中添加一个随机单词,然后从列表中删除另一个与第一个不同的随机单词

解决问题的最简单方法是使用random.samplepopulation,k从列表中选择元素,而无需替换。您可以查看相关文档

现在看起来是这样的:

def easy():
    wordList = ["dog", "house", "food", "ice", "rich", "school", "team", "walk", "mice", "car", "airplane", "internet", "big", "red",
            "snow","wow", "lose", "run", "line", "duck", "bike", "land", "hill", "bad", "simple", "clock", "virus", "game", "sign", "end"]
    print()
    print("Okay! Welcome to the easiest mode.")
    time.sleep(2)
    print("You will be given five words and must try to remember them in order:")
    time.sleep(3)
    print("Ready")
    time.sleep(1)
    print("Set")
    time.sleep(1)
    print("REMEMBER!")
    time.sleep(0.5)
    wordsToGuess = random.sample(wordList, 5)
    print(wordsToGuess)
    time.sleep(4)
    print(("\n") * 100)
    print("Let's see how good your memory really is")
    return wordsToGuess

这将在屏幕上闪烁值,而不是将它们全部打印在列表中。 我还增加了1/2秒的延迟,使打印效果更好

导入时间 随机输入 def easy: 单词列表=[狗,房子,食物,冰,富人,学校,团队,散步,老鼠,汽车,飞机,互联网,大,红色, 雪,哇,输,跑,线,鸭子,自行车,地,山,坏,简单,时钟,病毒,游戏,标志,结束] 打印 好的!欢迎使用最简单的模式。 时间2 打印您将获得五个单词,并且必须尝试按顺序记住它们: 时间3 打印就绪 时间1 打印集 时间1 记住! 时间是0.5 单词到猜测=[] 对于范围5中的i: word=random.choiceword\u列表 猜猜看 时间是0.5 word\u list.removeword 印刷字到猜猜[i] 时间到了 打印\n*100 让我们看看你的记忆力到底有多好 将单词返回到猜测 但是我没有看到代码的其余部分。我猜游戏模式很简单,但为什么这么快就结束了呢?你可以让用户输入单词,给他一些时间来打字,而不是将单词返回到猜测列表中,可能是在一个线程中或其他什么地方

不是答案,更像是建议:

导入时间 随机输入 导入线程 def计数器时间: 时间,睡觉时间 def get_输入字:int,时间:float: 单词列表=[] 打印你将有{}秒的时间来写下你记住的所有单词!。形成时间 时间2 打印开始! 倒计时=线程。线程目标=计数器,args=时间 倒计时,开始 而倒计时.isAlive: 如果单词>0: 单词=输入写单词\N word\u list.appendword 单词-=1 其他: 打破 返回单词列表 def easy: 单词列表=[狗,房子,食物,冰,富人,学校,团队,散步,老鼠,汽车,飞机,互联网,大,红色, 雪,哇,输,跑,线,鸭子,自行车,地,山,坏,简单,时钟,病毒,游戏,标志,结束] 打印 好的!欢迎使用最简单的模式。 时间2 打印您将获得五个单词,并且必须尝试按顺序记住它们: 时间3 打印就绪 时间1 打印集 时间1 记住! 时间是0.5 单词到猜测=[] 对于范围5中的i: word=random.choiceword\u列表 猜猜看 时间是0.5 word\u list.removeword 印刷字到猜猜[i] 时间到了 打印\n*100 让我们看看你的记忆力到底有多好 words=get_input5,10这将给用户10秒的时间来写5个单词 错误=[] 对于我来说,用一句话来说: 如果单词[i]!=单词对猜[我]: 阑尾炎 如果有错误: 打印您犯了{}个错误:\n.formatLenErrors 因为我错了: 打印{}你写的“{}”。这个词是。formati,错[i],单词到猜[i] 其他: 真漂亮!你没有犯错误! 我没有运行它,但它可能会工作:p


顺便说一下,python中的最佳实践是对变量名和函数名使用snake-case-snake\u-case。您可以使用camelCase camelCase,但只能用于类名

在脚本中如何调用函数?每次运行该函数时,它都会重新构建单词列表,选择5并返回该列表。您是在循环中运行函数还是什么?我们需要一个更好地理解您的问题WordStoguess=random.choiceswordList,5将同时为您提供所有5个。如果你在多个开头得到相同的单词,你会得到一个随机的种子。。。在代码中的某个地方,在每次运行时将随机模块初始化为相同的状态。您的代码不会复制您的错误。。。请填写it@G.Anderson调用wordList.RemoveAndOM.choicewordList也会删除一个随机单词,而不是添加在wordsToGuess`list中的单词。@Filip虽然这是一个非常有效的观点,但是 y此函数的设计与此无关,因为它在每次运行时都会重建整个列表,并且不记得以前运行过的任何内容。在这里,建议使用此函数,而不是附加和删除