🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
你在一家创建“个人文件数字档案”的公司担任程序员。你的任务是开发一个模块来验证输入的日期。该系统必须绝对可靠,不能接受不正确或不可能的日期(例如2月30日或4月31日),以及格式错误的数据。
程序必须逐行读取输入,直到用户输入 0。对于每一行输入,需要检查它是否是一个正确的、存在的日期,格式为 dd.mm.YYYY。
程序接收若干行输入。每行包含一个待验证的日期或任意字符集。当单独一行中输入符号 0 时,数据输入结束。
对于输入的每一行(除了最后一行 0),程序应在新的一行中显示:
正确日期 — 如果该行是符合 DD.MM.YYYY 格式的现有日期;在所有其他情况下(格式错误、不存在的日期),则显示 错误日期。 2024年12月12日
2023年4月31日
2023年2月29日
Hello World
2024年2月29日
2000年1月1日
0
正确的日期
错误的日期或格式
错误的日期或格式
错误的日期或格式
正确的日期
正确的日期
import datetime
while True:
# Считываем очередную строку от пользователя
input_str = input()
# Проверяем условие выхода из цикла
if input_str == '0':
break
try:
# Пытаемся преобразовать строку в дату по заданному формату.
# Формат '%d.%m.%Y' означает:
# %d - день месяца с ведущим нулем (01-31)
# %m - месяц с ведущим нулем (01-12)
# %Y - год в виде четырех цифр (например, 2024)
#
# Эта функция автоматически проверяет и формат, и существование даты.
# Например, для "30.02.2024" она вызовет ошибку, так как такой даты нет.
datetime.datetime.strptime(input_str, '%d.%m.%Y')
# Если преобразование прошло успешно, значит дата корректна
print("Корректная дата")
except ValueError:
# Если в процессе преобразования возникла ошибка ValueError,
# это означает, что либо формат строки не соответствует 'ДД.ММ.ГГГГ',
# либо сама дата невозможна (например, 31 апреля).
print("Некорректная дата или формат")
🎉 恭喜! 🎉
你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。
AD
广告
正在运行代码...