Pytanko. Liczenie czasu wykonywania funkcji.

Pytanko. Liczenie czasu wykonywania funkcji.
MA
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:72
0

Hejka. Mam małe pytanie odnośnie poniższego kodu.

Kopiuj
import time
start=time.clock()
liczby_pierwsze = [2]
def czy_pierwsza(liczba):
    for dzielnik in liczby_pierwsze:
        if liczba % dzielnik == 0:
            return False
        if dzielnik * dzielnik > liczba:
            return True
    return True
 
def generuj_pierwsze(liczba):
    for i in range(2, liczba):
        if czy_pierwsza(i) is True:
            liczby_pierwsze.append(i)
    return liczby_pierwsze
koniec=time.clock()-start
generuj_pierwsze(2000000)
print(liczby_pierwsze)
print("Czas generowania: ",koniec)

Chcę, żeby wyświetlało mi tylko czas generowania liczb pierwszy, a nie ich wypisywanie.
Gdzie mam umiejscowić 'koniec=time.clock()-start'? Tam gdzie jest czy pod generuj_pierwsze(2000000)

Guaz
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Częstochowa
  • Postów:221
1

Polecam bardziej metodę from time import time as tm a następnie:

Kopiuj
[jakis blok instrukcji lub funkcja] 
czas_start = tm() - czas_start```
Skoro koniecznie chcesz to w programie wypisac zamiast wykorzystac timeit. Niemniej powinieneś to dać po generuj_pierwsze(2000000) bo to jest wykonywane w twoim programie najdłużej i zapewne to chcesz zmierzyć.

Wracając do sedna pytania, z twoim sposobem.
Czyli powinno to wyglądać tak:
```python
import time
liczby_pierwsze = [2]

def czy_pierwsza(liczba):
    for dzielnik in liczby_pierwsze:
        if liczba % dzielnik == 0:
            return False
        if dzielnik * dzielnik > liczba:
            return True
    return True

def generuj_pierwsze(liczba):
    for i in range(2, liczba):
        if czy_pierwsza(i) is True:
            liczby_pierwsze.append(i)
    return liczby_pierwsze

start=time.clock()
generuj_pierwsze(2000000)
koniec=time.clock()-start
print(liczby_pierwsze)
print("Czas generowania: ",koniec)```

Linux Mint
Arduino / Python 3.5.2
edytowany 1x, ostatnio: Guaz

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.