Как ограничить ввод времени, чтобы он был доступен только в течение периода времени в Python

#python #datetime #input #time #range

Вопрос:

Я успешно создал функцию, которая запрашивает у пользователя допустимое время, импортировав модуль Datetime. Если пользователь не введет допустимое время, вопрос будет задан до тех пор, пока он/она этого не сделает. Но проблема в том, что в настоящее время я управляю зоопарком, который открыт с 08:00 до 22:00. Как мне расширить свой код, чтобы пользователь мог вводить действительное время только в промежуток времени между этим периодом? Помощь была бы признательна.

Код:

 def input_time():   while True:  try:  time = input("What time do you plan to be here? (HH:MM): ")  pattern_time = ('%H:%M')  time = datetime.strptime(time, pattern_time)  except ValueError:  print("Not a valid time,try again")  continue  else:  break  return time  time = input_time()  

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

1. Это Питон, я полагаю?

2. Да, я не уточнил, что это Python

Ответ №1:

Извините, что никто не ответил на этот вопрос. Структура time_struct предоставляет поля-члены, которые вы можете проверить:

 while True:  try:  t = input("What time do you plan to be here? (HH:MM): ")  pattern_time = ('%H:%M')  t = time.strptime(t, pattern_time)  if not (8 lt;= t.tm_hour lt;= 22):  print("The zoo is only open from 8:00 to 22:00")  continue  except ValueError:  print("Not a valid time, try again")  continue  else:  break return t  

Кроме того, будьте осторожны с именами переменных.