で、言語仕様的問題に戻るとだ。

インデント強制文法で売ってるPython 的には、こういう場合、i は、グローバル変数になるべきなのであって、

i 渡さない場合でも、上のi だけ参照するようなクソ仕様は直感に反するから修正しろということ
ちゃんと下の i も見るようにしろと。