Как я могу иметь переменную в 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
попытка перехода должна быть самоочевидной.