> A: 4の倍数の年は、うるう年
> D: ただし30の倍数の年は、うるう年
> E: ただし、30と4の倍数の年はうるう年ではない

↑を

https://qiita.com/kjm_nuco/items/fd16c2af6b089c4849cd#comment-8eb8979a5b3ed36b80fc
> それ、問題文の条件のまま書いちゃダメなんですよね。
> 「ただし」がある場合は前出の条件を否定してくるので、条件の順番通りに書くと破綻します。
> だから、「ただし」がある場合は条件を逆に記述していくのが鉄則です。

ashworthの言う鉄則(笑)に当てはめると

def is_leap(year):
 if year % 4 == 0 and year % 30 == 0:
  return False
 if year % 30 == 0:
  return True
 if year % 4 == 0:
  return True
 return False

こうなるのかな。
yearの値が30の場合、4の倍数じゃないけどTrue返すことになるけど正しいのかな??