実践・上級問題チェック

問題 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)