Silnia iteracyjnie pętla for

Silnia iteracyjnie pętla for
MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
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?

Kopiuj
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
atmal
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 913
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

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

wyświetli:

Kopiuj
0
1
2
vpiotr
  • Rejestracja: dni
  • Ostatnio: dni
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.