Liczby pierwsze. Wcięcia

Liczby pierwsze. Wcięcia
MA
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:72
0

Mam tutaj taki oto program do generowania liczb pierwszych:```

Kopiuj
def primes(limit):
    tab=[]      
    for i in range(2,limit):    
        for j in tab:           
            if i % j == 0:
                break
        else:
            tab.append(i)        
    return tab
print(primes(10))
```
I nurtuje mnie pytanie, dlaczego else nie jest pod if tylko pod for (chodzi mi o tabulacje). Czy ktoś mógłby mi to wytłumaczyć?
AN
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 4 godziny
  • Postów:973
0

Bo słowo kluczowe else dotyczy również pętli for. Chodzi o to, że możesz z niego korzystać w ifach lub w pętli. W przypadku pętli kod pod else wykona się tylko gdy pętla niezostanie przerwana słowem break. Innymi słowy else mogłoby brzmieć równie dobrze nobreak


Zdalna praca dla Senior Python Developerów --> PW
MA
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:72
0

I dlaczego dla limit=1000000 wyskakuje błąd?

MD
jaki błąd wyskakuje?
SI
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 3 godziny
0

Mi działa, aczkolwiek strasznie wolno bo robisz masę zbędnych porównań, zajrzyj do swojego wcześniejszego tematu o pierwszych, swoją drogą tam też powinieneś się o to pytać.

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.