Как получить(вернуть) значение переменной из функции в python 3?
i внутри функции и вне её - разная i.
Если сделать i = fun(0), тогда внешняя i будет равна 3.
Твой последний принт выводит 5 строку, где i остается равной нулю, т.к. она не переопределяется в глобальной области видимости