Как реализовать ввод даты пользователем целиком за один раз?
Пишу функцию, где человеку надо угадать загаданную мной дату. У меня получается реализовать это через поочерёдный ввод дня, месяца и года, вот так это выглядит на примере. Но как можно сделать так, чтобы он за один раз ввёл дату целиком и она засчиталась как верная? Чтобы он не писал 6 отдельно, 6 отдельно, 2022 отдельно, а мог сразу написать 06/06/2022 или 06.06.2022.
a = "6"
b = "6"
c = "2022"
d = datetime.strptime(a + "/" + b + "/" + c, '%d/%m/%Y')
running = True
def dr():
while running:
guess = str(input('Угадайте день: '))
if guess == a:
print('Угадал')
break
if guess != a:
print('Нет')
while running:
guess = str(input("Угадайте месяц: "))
if guess == b:
print('Угадал')
break
if guess != b:
print('Нет')
while running:
guess = str(input("Угадайте год: "))
if guess == c:
print('Угадал')
break
if guess != c:
print('Нет')
if d:
print("Конец")
else:
print("Нет")
Ответы (1 шт):
Что-то очень странное вы пишете. С одной стороны в вашем коде есть и strptime и input, а с другой - как можно сделать так, чтобы он за один раз ввёл дату целиком. Вы что, выложенный код откуда-то содрали целиком и не думая?
Вот вам "скелет" программы-угадайки, где дата должна вводиться единой строкой, например 6/6/2022, а уж под свою задачу доводите ее сами:
import datetime
a = "6"
b = "6"
c = "2022"
dt=datetime.datetime.strptime(input('Введите дату'),'%d/%m/%Y')
if int(a)==dt.day:
print("Молодец, угадал день")
if int(b)==dt.month:
print("Молодец, угадал месяц")
if int(c)==dt.year:
print("Молодец, угадал год")