time
Wstrzymywanie programu, znaczniki czasu i dokładny pomiar czasu wykonania kodu.
Przykład
#import time
for seconds in range(3, 0, -1):
print(f"Start za {seconds}...")
time.sleep(1)
print("Start!")Kolejne linie pojawiają się w odstępach jednej sekundy.
Definicja i zastosowanie
#Moduł time udostępnia podstawowe funkcje związane z czasem. time.sleep(sekundy) wstrzymuje program na podany czas, time.time() zwraca liczbę sekund, które upłynęły od 1 stycznia 1970 roku (tak zwany znacznik czasu Unix), a time.perf_counter() służy do dokładnego mierzenia, ile trwał fragment kodu.
Do pomiarów wybieraj perf_counter(), a nie time(). Zegar systemowy może zostać przestawiony, na przykład przy synchronizacji z internetem, a perf_counter() zawsze rośnie i ma dużą dokładność. Znaczenie ma tylko różnica dwóch odczytów.
Funkcje gmtime(), localtime() i strftime() zamieniają znacznik czasu na datę i tekst. Do obliczeń na datach, takich jak dodawanie dni czy porównywanie terminów, wygodniejszy jest moduł datetime.
Składnia
#import time
time.sleep(sekundy)
time.time()
time.perf_counter()
time.strftime(format, struct_time)Więcej przykładów
#import time
start = time.perf_counter()
total = sum(n * n for n in range(1_000_000))
elapsed = time.perf_counter() - start
print(total)
print(f"Obliczenia trwały {elapsed:.3f} s")Pierwsza linia to zawsze 333332833333500000. Zmierzony czas zależy od komputera, np. Obliczenia trwały 0.041 s.
import time
moment = time.gmtime(1_790_000_000)
print(moment.tm_year, moment.tm_mon, moment.tm_mday)
print(time.strftime("%Y-%m-%d %H:%M:%S", moment))gmtime() podaje czas UTC. Czas lokalny zwraca localtime(), a bieżący znacznik czasu time.time().
Dobre praktyki
#- Czas działania kodu mierz przez
time.perf_counter(). Do porównywania wydajności krótkich fragmentów służy też modułtimeit. - W programach asynchronicznych nie używaj
time.sleep(), bo blokuje całą pętlę zdarzeń. Zamiast tego napiszawait asyncio.sleep().
Powiązane hasła
#- datetimeDaty i godziny: tworzenie, formatowanie, odczyt z tekstu i obliczenia na odstępach czasu.
- async i awaitProgramowanie asynchroniczne: czekanie na operacje bez blokowania całego programu.
- randomLosowanie liczb i elementów: rzut kostką, wybór z listy, tasowanie i losowe próbki.
- sysDostęp do interpretera: argumenty wiersza poleceń, kończenie programu, wersja Pythona i strumienie.
Widzisz błąd albo brakuje przykładu? Napisz do nas.