Karşılaştırmalardaki sorun, bir >=yere yerleştirdiğinizde hata ayıklamanın zor olabileceğidir.<=
# v---------- should be <
if number >= 10000 and number >= 30000:
print ("you have to pay 5% taxes")
Python kelimelerle ne demek istediğinizi yazmanıza izin verir
if number in xrange(10000, 30001): # ok you have to remember 30000 + 1 here :)
Python3'te rangebunun yerine kullanmanız gerekir xrange.
edit: İnsanlar daha mikrobench işaretleri ve ne kadar havalı zincirleme işlemleri ile ilgili gibi görünüyor. Cevabım savunma (hatalar için daha az saldırı yüzeyi) programlama ile ilgilidir.
Yorumlardaki bir iddia sonucunda, Python3.5.2 için mikro karşılaştırmalı değerlendirmeyi buraya ekledim
$ 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
Performans konusunda endişeleriniz varsa, aralığı bir kez hesaplayabilirsiniz
$ python3.5 -m timeit -s "R=range(10000, 30000)" "5 in R"
10000000 loops, best of 3: 0.0551 usec per loop