Проблема зі порівняннями полягає в тому, що вони можуть бути важкими для налагодження, коли ви ставите місце, >=де повинно бути<=
# v---------- should be <
if number >= 10000 and number >= 30000:
print ("you have to pay 5% taxes")
Python дозволяє вам просто писати те, що ви маєте на увазі словами
if number in xrange(10000, 30001): # ok you have to remember 30000 + 1 here :)
У Python3 вам потрібно використовувати rangeзамість xrange.
редагувати: Люди, здається, більше стурбовані мітками мікробенка та наскільки крутими ланцюговими операціями. Моя відповідь стосується оборонного (менше атаки для помилок) програмування.
У результаті претензії в коментарях я тут додав мікро-орієнтир для Python3.5.2
$ python3.5 -m timeit "5 in range(10000, 30000)"
1000000 loops, best of 3: 0.266 usec per loop
$ python3.5 -m timeit "10000 <= 5 < 30000"
10000000 loops, best of 3: 0.0327 usec per loop
Якщо ви турбуєтесь про ефективність, ви можете обчислити діапазон один раз
$ python3.5 -m timeit -s "R=range(10000, 30000)" "5 in R"
10000000 loops, best of 3: 0.0551 usec per loop