2015-02-05 3 views
1

사용자가 유효성 검사 유형으로 특정 형식의 데이터를 입력했는지 확인하는 중 문제가 발생했습니다. 입력 한 날짜까지 while 루프에서 사용자를 유지하는 것이 dd/mm/yy 형식입니다.입력 한 날짜의 날짜 형식을 확인하십시오.

은 내가

time.strptime(" %d/%m/%y") 

에 이것을 시도했지만 나는 그것이 사용자의 형식이 형식을 비교하게 보일 수 없었다.

(파이썬 초보자)

답변

0

당신이 확인할 수 있습니다 전체 년 단축 개월 혼합하는 경우 :

from datetime import datetime 

while True: 
    try: 
     inp = input("Please enter date in format yyyy/mon/dd. ie 2015/feb/05") 
     dte = datetime.strptime(inp,"%Y/%b/%d") 
     break 
    except ValueError as e: 
     print("Invalid format") 
print(dte) 
0
import time 

valid = False 
while not valid: 
    date_str = input("Date:") 
    try: 
     time.strptime(date_str, "%d/%m/%y") 
     valid = True 
    except ValueError: 
     valid = False 

print(date_str) 

예 :

사용자가 입력
Date:22/01/2015 
Date:22/01/15 
22/01/15 
+0

어떤 경우'01/01/15' 어떻게 확신 할 수 있습니까? –

+0

글쎄, 물론, 입력 진술은보다 정확해야하며 일/월/년 또는 dd/mm/yy라고해야합니다. 그러나 실제로 프로그래밍상의 문제는 아닙니다. –

+0

하지만 여전히 사용자가 올바른 순서로 입력한다는 것을 의미하지는 않습니다. 이름과 숫자를 혼합하는 유일한 방법입니다. 단지 작동한다고해서 사용자가 실제 주문을 정확하게 처리했다는 것을 의미하지는 않습니다. –

관련 문제