実践・上級問題チェック
問題 20 /40
2週間前の日付を取得する記述で、誤っているものはどれか。
先に次のコードが実行されているものとする。
from datetime import date, timedelta
today = date.today()
選択 1
week = timedelta(days=7)
today - week * 2
選択 2
today - timedelta(14)
選択 3
week = timedelta(weeks*-2)
today + week
選択 4
week = timedelta(days=7, weeks=1)
today - week
解説
選択肢3が正解です。
timedeltaはdatetimeオブジェクトの差を算出します。
timedeltaの引数は様々な形式に対応しており、選択肢1、2、4は正しい記述です。
選択肢3はNameErrorになります。「timedelta(weeks*-2)」ではなく、「timedelta(weeks=-2)」であれば2週間前の日付を取得できます。
なお、timedeltaはdatetimeオブジェクト同士で計算する必要があるため、「today - 14」などはエラーになります。
(公式書籍 p.167)