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