【发布时间】:2021-04-13 22:18:08
【问题描述】:
我正在用 python 制作一个在控制台上运行的游戏。当我退出游戏时,我按下的所有键都会自动输入。我该如何阻止这种情况发生?另外,当我使用input() 函数时,我仍然希望有用户输入。顺便说一下,这是在 Windows 上。
如果你想要代码,这有同样的“问题”:
for _ in range(100000):
print("Hello")
当程序在命令提示符下完成时,会出现:
C:\Users\User>awdsaawdsadwsaasdwaws
基本上,代码运行时按下的任何键。当其他东西也在命令提示符下运行时会发生这种情况,但我想知道如何在 python 中禁用它。
编辑:我一直在挖掘,发现我正在寻找的是刷新或清除键盘缓冲区。我将我的问题标记为与另一个有几个答案的问题重复,但这个问题最适合我:
def flush_input():
try:
import msvcrt
while msvcrt.kbhit():
msvcrt.getch()
except ImportError:
import sys, termios #for linux/unix
termios.tcflush(sys.stdin, termios.TCIOFLUSH)
【问题讨论】:
-
如果你能提供一些代码就太好了,这样我们就不用猜测了
-
这似乎不太可能,除非您的程序注册按下的键,然后循环每个按下的键并使用 python 模拟它。但是你会知道为什么会这样。
-
好吧,从我的推论(因为你还没有提供代码)我会说有打印语句可以打印用户在最后使用
input()输入的所有内容 -
@Matiiss 控制台中的游戏是蛇游戏。当程序运行时,我希望用户可以使用
input()更改设置。这就是为什么有输入。但除此之外,当你死的时候,你按下的所有键都在下一行,比如C:\Users\User>awdsadwdasdawdasdasdsawdas -
正如我所说,您应该提供代码。如果我不知道您在代码中添加了什么,您认为我将如何回答为什么会发生这种情况?