✨ Best Answer ✨
for i in range(0, 5): はiを0から4になるまで繰り返す構文なので、iが2と4のときにprintが実行されますが、
if i in range(0, 5): はiが0以上5未満かどうかで条件分岐する構文なので、iは初期値から変わらず0のままです。実行してもif (i == 2) or (i == 4): のところで条件を満たさないので何も出力されません。
if i in range(0, 5): という構文が無いわけではないのでエラーは出ません。

