[Zadanie rekrutacyjne 4] Sprawdzanie, czy liczba mieści się w zakresie

Data publikacji: 2016-03-29 | Tagi:

Mamy zmienną a. Zadaniem jest sprawdzić, czy a mieści się w zakresie (40000, 50000).

Podejście pierwsze to proste sprawdzenie:

if a > 40000 and a < 50000

Takie rozwiązanie jest spoko, jest stosowane w wielu językach, sprawdza się, więc teoretycznie nie ma co cudować.

Ale zawsze możemy spróbować podejścia bardziej pythonicznego, co prowadzi nas do podejścia drugiego:

if a in range(40001, 50000)

Łatwiej się to czyta, ale rozwiązanie ma jedną wielką wadę: czas wykonania, który w stosunku do pozostałych rozwiązań jest znacznie dłuższy (na końcu notatki podam przykładowe czasy).

Podejście trzecie:

if 40000 < a < 50000

Te podejście jest niemal tak szybkie jak pierwsze, a dodatkowo według mnie ma większą czytelność.

Jeśli miałbym oceniać, wybrałbym trzecie, jako najszybsze i jednocześnie pythoniczne.

Obiecane podsumowanie czasów wykonania:

HellHound~ python -m timeit "a=10; a > 40000 and a < 50000"
10000000 loops, best of 3: 0.0401 usec per loop

HellHound~ python -m timeit "a=10; a in range(40001, 50000)"
1000 loops, best of 3: 214 usec per loop

HellHound~ python -m timeit "a=10; 40000 < a < 50000"
10000000 loops, best of 3: 0.0489 usec per loop


Oceń ten post:
Podziel się:

comments powered by Disqus

IT w obrazkach: