我是编程新手,正在编写一个程序,其中用户以DD / MM / YYYY格式给我输入日期,但是如果用户以DD.MM.YYYY格式写出日期,我出现一个错误“没有足够的值要解压(期望3,得到1)”,因为我用“ /”分割了输入字符串。我的问题是:如果用户以错误的格式写入日期,如何给出错误消息并再次要求输入?
例如:
Data1= input("Which date (DD/MM/YYYY)?\n")
day,month,year= Data1.split('/')
isValidDate= True
try :
datetime.datetime(int(year),int(month),int(day))
except ValueError :
isValidDate = False
if(isValidDate) :
A1=function(username, Data1)
print ("Good",A1,".")
else :
print ("Incorrect. New date, please (format DD/MM/YYYY)")
答案 0 :(得分:0)
使用以下断言条件,它将退出程序。
date = input('your date :')
assert('.' in date, " Please use format MM/DD/YY")
答案 1 :(得分:0)
您可以简单地执行以下操作。
container2
输出:
while True:
i = input("enter date")
if i.__contains__("."):
print("re-enter date with format YY/MM/DD ")
else:
print("\ndo something with Date: ", i)
break
根据您的示例,您可以将代码重构为某种形式:
enter date 2020.03.02
re-enter date with format YY/MM/DD
enter date 2020/03/02
do something with Date: 2020/03/02
答案 2 :(得分:0)
我有此复制并粘贴到我使用日期输入所做的任何事情中
while True:
user_date = input('please input date DD/MM/YYY:')
if re.search(r'[0-3][0-9]/[0-1][0-9]/20[0-9]{2}', user_date):
break
else:
continue
您必须
import re