在python中,如何使一个变量不执行任何函数,但仍然可以识别?

在python中,如何使一个变量不执行任何函数,但仍然可以识别?,python,skip,Python,Skip,基本上,我希望跳过我的throwraw输入变量,以便以后仍然可以访问和引用它,但不需要用户输入就可以继续,因此如果您在5秒内键入“throw brick”,它将使您获得结果打印“干得好!” 我知道在这样一个基于结构的代码中不存在goto或jump。因此,如果有人能提供替代方案,我们将非常感谢您的帮助。我不确定我是否理解您的意图,但在我看来: 要求用户输入,但在5秒后超时(您的time.sleep(5)) 反复重复(您的重新启动) 如果是这样的话,看起来这将是一种方法: 我用代码的详细信息修改

基本上,我希望跳过我的
throw
raw输入变量,以便以后仍然可以访问和引用它,但不需要用户输入就可以继续,因此如果您在5秒内键入“throw brick”,它将使您获得结果
打印“干得好!”


我知道在这样一个基于结构的代码中不存在
goto
jump
。因此,如果有人能提供替代方案,我们将非常感谢您的帮助。

我不确定我是否理解您的意图,但在我看来:

  • 要求用户输入,但在5秒后超时(您的
    time.sleep(5)
  • 反复重复(您的
    重新启动
如果是这样的话,看起来这将是一种方法:

我用代码的详细信息修改了基于选择的答案:

import sys
import select

throw_command = ["throw brick"]

while True:
    print "\nEnter command:"
    i, o, e = select.select( [sys.stdin], [], [], 5 ) # times out after 5 seconds

    if i: # If input was provided
        throw = sys.stdin.readline().strip()
        if throw in throw_command:
            print "good job!"
            break
        else:
            print "GAME OVER"
    else:
      print "You didn't enter anything!"
select
的使用有点高级(理想情况下,raw\u输入应该有一个可选的
timeout
参数),但它比使用线程更简单,这是我能想到的处理raw\u输入的唯一方法


使用while循环代替您的
重新启动
尝试转到应该是不言自明的。

要避免控制台应用程序中的同步输入处理,请查看类似库(或等效库,但希望是更高级别的库)。您的代码在语法上不正确,所以它不能很好地说明你的问题是什么。尝试创建一个完整但最少的示例程序,尝试实现您想要做的事情,并编辑您的帖子以包含它。描述它应该做什么,以及它实际在做什么。在生成中剪切并粘贴任何输出或错误消息,并将其包含在问题中。
import sys
import select

throw_command = ["throw brick"]

while True:
    print "\nEnter command:"
    i, o, e = select.select( [sys.stdin], [], [], 5 ) # times out after 5 seconds

    if i: # If input was provided
        throw = sys.stdin.readline().strip()
        if throw in throw_command:
            print "good job!"
            break
        else:
            print "GAME OVER"
    else:
      print "You didn't enter anything!"