Почему функция возвращает None при аргументе 1

Почему функция возвращает None при аргументе 1 (единица), при всех остальных возврат корректный?

def fib(n):
    fib_values = [1, 1]
    for i in range(1, n):
        max_n = len(fib_values)
        if n > max_n:
            appender = fib_values[max_n-2] + fib_values[max_n-1]
            fib_values.append(appender)
        else:
            return fib_values[n-1]

def main(n):
    print(fib(n))

main(1)

Ответы (1 шт):

Автор решения: Qwertiy

Потому что у range правая граница невключительно, а значит цикл не выполняется ни разу.

А вообще, для таких вещеё существует отладчик.

→ Ссылка