Как отключить только одну вещь (из пользовательского ввода) и сохранить остальные в течение 30 секунд?

#python #timer

#питон #таймер

Вопрос:

Допустим, вы создаете игру, и в ней есть ввод, который спрашивает вас, что вы хотите сделать.

 bal=0 while True:  question=input("What do you want to do?")  if(input=="beg"):  print(Adding 500$ to your balance.)  bal=bal 500  elif(input=="bal"):  print("Balance: " str(bal))  

Я хочу сделать таймер, чтобы пользователь не мог использовать команду beg в течение 30 секунд. Но все равно сможете использовать другие команды-я, вероятно, добавлю больше команд. Кстати, я не мог сделать отступы здесь, страница сайта пошла вниз, но представьте, что цикл while true и ifs имеют правильный отступ.

Ответ №1:

Вы можете сделать это с помощью модуля времени.

 import time bal=0 start = 0 while True:  question=input("What do you want to do?")  if(question=="beg"):  if(time.time()-startgt;=30):  print(Adding 500$ to your balance.)  bal=bal 500  start = time.time()  else:  print("Wait for",30-time.time() start,"seconds")  elif(question=="bal"):  print("Balance: " str(bal))  time.sleep(5)  

Комментарии:

1. Я могу продолжать использовать другие команды (например, bal), когда beg отключен, верно?

2. Да, вы можете, так как он независим.

3. Ваш ответ просто ЛЕГЕНДАРЕН!

Ответ №2:

один подход, диктант с использованием в последний раз (как вы упомянули, у вас будет больше)

 from time import time  def beg():  # your code  commands = {  "beg": {"func": beg, "last_time":0, "timeout": 30 }, #maybe more stuff  "another": {"func": another, "last_time":0, "timeout": 10 },  # ... } # you are likely wanting to build this dict dynamically, maybe  while True:  question = input("What do you want to do?")  if question in commands:  if time() gt; commands[question]["last_time"]   commands[question]["timeout"]:  commands[question]["func"]() # this executes the function of the command  commands[question]["last_time"] = time() # this sets the time as of now  else: print(f"you are not allowed to use {question} yet") # you get the idea  else: print("command not recognized") # yada