オブジェクト変数を初期化するための引数として渡された日、月、および年が有効な日付を表していない場合、クラスオブジェクトを初期化するプログラムを作成する必要があります。例外は無効な日付メッセージのみを発行することがあります。Pythonで例外を使用してプログラムを変更する
私はPythonではあまり例外がありませんので、有効かどうかを調べるifとelseだけを持つアルゴリズムを実行しました。私が必要とするもの、つまり:オブジェクト変数を初期化するための引数として渡された日、月、年が有効な日付ではない場合、例外をどのように変換するか?私はtime.strptimeのような既製の機能を使用することはできません
def dois(day, month, year):
checks = "true"
i = 0
while checks == "true" and i == 0:
if (year%4 == 0 and year%100!= 0) or year%400 == 0:
leap_year = "sim"
else:
leap_year = "nao"
if month < 1 or month > 12:
checks = "false"
if day > 31 or ((month == 4 or month == 6 or month == 9 or month == 11) and day > 30):
checks = "false"
if (month == 2 and leap_year == "nao" and day > 28) or (month == 2 and leap_year == "sim" and day > 29):
checks = "false"
i = i + 1
if checks == "true":
print("Valid date")
else:
print("Invalid date")
、私は
これは学業者がどのようにする必要がありますか?実際には 'datetime.datetime(year、month、day)'を実行し、例外を発生させます。 – deceze
なぜ「while」?!とにかくこれを繰り返しているのは1つだけです。 – deceze