2017-09-21 9 views
0

私は、生年月日から人の年齢を計算するために、pythonを使って計算しようとしています。これを修正するには:時刻データ '9121991'は '%d%m%Y'形式のエラーと一致しませんか?

私はすでにthisthisを試しましたが、答えは見つかりませんでした。

私は次のように行われている:

print ('Enter your date of birth here (dd mm yyyy): ') 
date_of_birth = datetime.strptime(str(input('----->')), '%d %m %Y') 


def calculate_age(born): 

    today = date.today() 
    return today.year - born.year - ((today.month, today.day) < (born.month, born.day)) 

age = calculate_age(date_of_birth) 

print (age) 

しかしWHE:

インポート日時、日付

from datetime import datetime, date 

を以下の表記を作成します。 nこの形式の日付を入力します9121991

この値はエラーになります。私はこの09121991形式で入力するとき

ところで、私はこのエラー、私はこれを修正するにはどうすればよい

enter image description here

を受け取りましたか?

+0

'09121991'は' input'によって8進数として解釈されます... –

答えて

1

フォーマットにスペースが含まれているため、文字列を認識できません。あなたがinputを使用することはできません

from datetime import datetime, date 

date_of_birth = datetime.strptime("09121991", '%d%m%Y') 

注ためのPython 2に09121991を入力する:働く

  • input
  • 09121991は8進数として見られている式を評価しますが、含まれているため無効です9

代わりにraw_input()を使用しています。それはうまくいくでしょう。

ところで:ゼロでパッドする必要がある場合は、raw_input().zfill(8)を使用してください。そのトリックを使って先頭のゼロを追加する必要はありません。