По условиям кода получается, что высокостный год только тот, что кратный 4 и 100 и 400. А 2020/16/12...? В условиях задачи по другому написанно - кратный 4 но не 100 или 400.
Условие будет примерно таким:
if (y % 4 == 0 and y % 100 != 0)
or y % 400 == 0:
Советую привыкать писать and/or, потому что код будут читать другие люди.