首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >if语句,包括raw_input,只会打印键盘上输入的任何内容

if语句,包括raw_input,只会打印键盘上输入的任何内容
EN

Stack Overflow用户
提问于 2016-04-08 22:38:38
回答 1查看 70关注 0票数 0

我对python和编程非常陌生,每当我在键盘上按"w“键时,我都想打印出字符串”前进“。这是一项测试,我将把它转变为机动车辆的遥控器。

代码语言:javascript
复制
while True:
    if raw_input("") == "w":
        print "forward"

为什么它只打印出我输入的每一个键?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-08 23:05:50

在Python2.x中,raw_input函数将显示按下的所有字符,并在收到换行符后返回。如果你想要不同的行为,你必须使用不同的功能。下面是的可移植版本,它将返回每个按键:

代码语言:javascript
复制
# Copied from: stackoverflow.com/questions/510357/python-read-a-single-character-from-the-user
def _find_getch():
    try:
        import termios
    except ImportError:
        # Non-POSIX. Return msvcrt's (Windows') getch.
        import msvcrt
        return msvcrt.getch

    # POSIX system. Create and return a getch that manipulates the tty.
    import sys, tty
    def _getch():
        fd = sys.stdin.fileno()
        old_settings = termios.tcgetattr(fd)
        try:
            tty.setraw(fd)
            ch = sys.stdin.read(1)
        finally:
            termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
        return ch

    return _getch

getch = _find_getch()

它可以这样使用:

代码语言:javascript
复制
while True:
    if getch() == "w":
        print "forward"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36510431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档