Silnia iteracyjnie pętla for

0

Mam takie krótkie pytanko. Dlaczego w pętli for muszę napisać przedział (2, n+1), a nie (2, n). Czy pętla for nie uwzględnia końców przedziału?

def silniaIteracyjnie(n):
    if (n==0 or n==1):
        wynik=1
    else:
        wynik = 1
        for i in range(2, n+1):
            wynik = wynik*i
    return wynik
2

Jest tak jak mówisz, sam koniec jest pomijany. Łatwiej wtedy pracować z tablicami gdzie np. długość tablicy to 10 ale maksymalny indeks to 9.

Dla przykładu

arr_length = 3
for i in range(arr_length):
	print(i)

wyświetli:

0
1
2
1

Hasło: "python range syntax"
Pierwszy wynik (chyba wystarczająco rozbudowany):
https://www.pythoncentral.io/pythons-range-function-explained/
Trzeci wynik (bardziej oficjalny chyba):
https://docs.python.org/2/library/functions.html#range

1 użytkowników online, w tym zalogowanych: 0, gości: 1