Python 中的 getch() 显示错误输出

getch() in Python displaying wrong output

我在 python

中尝试了 运行 这段代码
from msvcrt import getch

while True:
      char = getch()
      print char

但这是无限显示字符“ÿ”。

谁能帮我解决这个问题 提前致谢

当我通过命令行 运行 相同的程序时,它工作正常。 我相信您正在尝试 IDE?如果您使用的是 pycharm,相同的查询已发布给他们,但大约一年都没有得到答复。

Link : Using getch() in pycharm

请在命令提示符下尝试相同的代码并告诉我们。

更新的答案:

getch() 需要工作 "console" window,当你 运行 空闲时,你不会得到一个作为它的集合来使用 pythonw.exe。因此,从技术上讲,它无法立即处理任何击键和 return。您可以尝试通过使用标准 python 从命令行启动 Idle 来验证这一点。 (但您可能必须在该控制台 window 中才能触发 getch() 到 return)

我通过从命令行启动 IDLE 亲自验证了您的程序。好吧,至少 return 那个角色不会无限期地出现。它没有 return 任何东西。

出于好奇,您真的需要为此程序使用 IDLE 吗?常规命令行不够吗?如果是,很抱歉我对这个问题帮不上什么忙。

从命令提示符启动空闲:python C:\Python27\Lib\idlelib\idle.py

答案来源:IDLE does not return getch() characters

我不怪你想使用 IDLE 进行调试,但 PDB 虽然不那么方便,但可以做 IDLE 可以做的任何事情,而且它没有这个问题(至少在 Windows XP-W10).在 PDB 下,kbhit 和 getche 都可以正常工作。无论是否调试,在 W10 中,您的脚本在用户按下某个键之前首次使用 getch returns 垃圾,但随后的使用是干净的。这在 Windows 的早期版本中不是必需的,但在实际使用之前使用 if kbhit() : getch() 始终是一个好主意,以确保在请求用户输入之前有一个干净的缓冲区。