2017-11-13 9 views
0
def checkdob(): 
    while True: 
     dob = input("Date of Birth") 
     try: 
      dob == datetime.datetime.strptime(dob, '%d-%m-%y') 
      break 
     except: 
      print("Incorrect data format, should be DD-MM-YYYY") 
checkdob() 
+0

'文字列(すなわち、 "1990年7月3日")を返しますdob'。だから、もしあなたが 'もしdob:'と言うことはできません。 'dob == datetime.datetime.strptime(dob、 '%d-%m-%y'):' – kstullich

+0

どうしたらうまくいかないのですか?それはあなたにどんな出力を与えていますか?もしそうなら、それをあなたの質問に加えてください。 – Michael

答えて

0

私は以下のことを行いました。入力としてDOBとして入力するものが不思議です。それ以外の場合は正常に動作しているようです。

>>> from datetime import datetime 
>>> dob = '31-12-99' 
>>> if dob: 
... dt_obj = datetime.strptime(dob, '%d-%m-%y') 
... 
>>> print dt_obj 
1999-12-31 00:00:00 
+0

はい、しかし私は関数にしたいですが、助けてくれてありがとうございます。 – joe

+0

上記のコマンドを関数に入れるのは簡単ですね。 – Alp

0

あなたはこのように試すことができます:

def checkdob(dob): 
    try: 
     return datetime.datetime.strptime(dob, '%d-%m-%Y') 
    except ValueError: 
     print("Incorrect data format, should be DD-MM-YYYY") 
     return None 


while not checkdob(input("Date of Birth")): 
    pass 
関連する問題