Этот бит странный:
for i in range(n-1):
(prev,curr)=(curr,prev+curr)
return curr
Цикл выполняется 0 или более раз, в зависимости от значения n
.Если он равен 1 или меньше, он запускается 0 раз, если он равен 2, он запускается один раз, как правило, он запускается n-1 раз.
Но функция может возвращать только один раз. Таким образом, даже если n равно 1000, функция вернется сразу же при первом запуске цикла, а остальная часть цикла никогда не произойдет.
И если он выполняется 0 раз (n <= 1), нетreturn в цикле, и функция достигает конца своего кода, так что она возвращает None. </p>