Как я могу иметь переменную в Python, которая не выполняет никаких функций, но все еще распознается?

В основном, я хочу, чтобы мой throw необработанную входную переменную, которая будет пропущена, чтобы к ней можно было обращаться и обращаться к ней позже, но для продолжения не требуется ввод данных пользователем, поэтому происходит, если вы наберете "throw brick" в течение 5 секунд, это приведет вас к исход print "good job!"

throw = raw_input()
    throw_command = ["throw brick"]
    import time
    me.sleep(5)
    if throw in throw_command:
        print "good job!"
    if throw not in throw_command:
        print "GAME OVER"
        restart

Я знаю такую ​​вещь, как goto или же jump не существует в таком структурном коде. Таким образом, если кто-то может предложить альтернативу, ваша помощь будет высоко ценится.

1 ответ

Я не уверен, что понимаю, что вы пытаетесь сделать, но для меня это звучит так:

  • Попросите пользователя ввести, но тайм-аут через 5 секунд (ваш time.sleep(5))
  • Повторите снова и снова (ваш restart)

Если это так, похоже, это был бы один из способов сделать это: ввод с клавиатуры с таймаутом в Python

Я изменил ответ на основе выбора с указанием вашего кода:

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_input должен иметь необязательный timeout аргумент), но это проще, чем использовать потоки, это единственный способ сделать это с помощью raw_input.

Использование цикла while вместо вашего restart попытка перехода должна быть самоочевидной.

Другие вопросы по тегам