我对python和编程很新,我想在键盘上按“w”时打印字符串“forward”。这是一个测试,我将转变为机动车辆的遥控器。
while True:
if raw_input("") == "w":
print "forward"
为什么只打印出我键入的每个键?
答案 0 :(得分:2)
在Python 2.x中,raw_input函数将显示所有按下的字符,并在收到换行符后返回。如果您想要不同的行为,您将不得不使用不同的功能。这是Python的可移植版本的getch,它将返回每个按键:
while True:
if getch() == "w":
print "forward"
可以像这样使用:
{{1}}
答案 1 :(得分:1)
raw_input
读取整行输入。您输入的行将对您可见,您可以执行键入一些文本的操作:
aiplanes
左边几个字符来解决你的拼写错误:
airplanes
回到最后并删除一个字符,因为你不是故意让它复数:
airplane
然后点击输入,raw_input
将返回"airplane"
。当您按下键盘键时,它不会立即返回。
如果想要读取单个键,则需要使用较低级别的终端控制例程来获取输入。在Unix上,curses
模块将是一个合适的工具;我不确定你在Windows上使用了什么。我之前没有这样做,但在Unix上,我认为您需要将终端设置为原始或cbreak模式,并使用window.getkey()
或window.getch()
进行输入。您可能还必须使用curses.noecho()
关闭回显;我不确定它是否包含在raw / cbreak模式中。