【问题标题】:In Python 3.3.2 how do I have the code wait for the user to press the "w" key?在 Python 3.3.2 中,如何让代码等待用户按下“w”键?
【发布时间】:2013-05-15 15:24:29
【问题描述】:

这个问题几乎说明了一切。我已经看到了类似问题的答案,但不是这个问题的确切答案,看来我需要一个更准确的答案。请记住,我对编程比较陌生,并且不会真正理解您为我设置的任何高墙代码。请尽量保持简单。 :(

我所知道的是,这在 BASIC 中非常简单(基本?),这是我有一些经验的一种语言。

请记住,我需要按下一个特定的键,而不仅仅是任何键。

顺便说一句,我在 Mac 上。

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    最简单的方法是:

    x = input("Press w")
    
    if x == "w":
        #Code
    

    或者你可以使用 enter 并去掉 if 语句:

    input("Press Enter to Continue...")
    #Code
    

    有更好的方法,但你要求的东西很简单

    【讨论】:

    • 谢谢!但如果可行,那么更复杂的方法会变得更好吗?
    • 好吧,我以为您希望它只是按 w 而不是 w 然后输入或直接输入,但如果这很棒!想想你必须导入模块的唯一其他选项,所以是的,它应该可以正常工作,如果它有效,你可以,除了我的答案
    • 其实刚刚测试过:不行。它只是在屏幕上键入一个“w”,然后什么也没有发生。我得到:Press ww Traceback (most recent call last): File "/Users/robertaronson/Desktop/helloworld.py", line 1, in <module> x = input("Press w") File "<string>", line 1, in <module> NameError: name 'w' is not defined
    • 没有理由你不应该只输入 w 然后回车 你是在制作某种游戏还是什么
    • 所以就像一个基本的文本,或者你使用 pygame,因为 pygame 可以很容易地使用键盘命令
    【解决方案2】:

    你想要的是一个关键的听众。 inputraw_input 只会在他们看到 EOL 或 EOF 字符时返回(例如,您按下回车键)。我假设您正在制作某种游戏(因为您想接受特定的键)?

    在这种情况下,您需要一个 keylistener,这将使其相关:Key Listeners in python?

    【讨论】:

    • 我的目标确实是做一款游戏。我看一下链接。
    【解决方案3】:

    注意:由于您请求 Python 3.x,我将使用 input()。对于 Python 2.x,请使用 raw_input()

    如果你想检查一次你可以做

    # Request a key to be pressed by the user
    res = input("Waiting for 'w' to be pressed...")
    if res == "w":
        # Do something if w was pressed
    else:
        # Do something if other then w was pressed
    
    # Code after check
    

    这样做的缺点是,无论您是否对检索到的键值满意,您的程序都会在检查完成后继续执行。

    如果您想等待 - 如在条件满足之前不要继续 - 对于您可以执行的特定键

    while True:
        res = input("Waiting for 'w' to be pressed...")
        if res == "w":
            # Do something if w was pressed and exit loop
            break
        else:
            # Do something if other then w was pressed
            # followed by another iteration of the loop
    
    # Code after check
    

    通过这样做,程序的执行将被困在无限循环中,并且会一直要求按下您想要的键,直到用户终止应用程序或满足要求。

    【讨论】:

      猜你喜欢
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 2015-05-02
      • 1970-01-01
      • 2016-11-06
      相关资源
      最近更新 更多