Masalah dengan perbandingan adalah bahwa mereka bisa sulit untuk di-debug ketika Anda meletakkan di >=mana seharusnya ada<=
# v---------- should be <
if number >= 10000 and number >= 30000:
print ("you have to pay 5% taxes")
Python memungkinkan Anda menulis apa yang Anda maksud dengan kata-kata
if number in xrange(10000, 30001): # ok you have to remember 30000 + 1 here :)
Di Python3, Anda harus menggunakan rangebukanxrange .
sunting: Orang-orang tampaknya lebih peduli dengan tanda microbench dan bagaimana operasi chaining yang keren. Jawaban saya adalah tentang program defensif (kurang permukaan serangan untuk bug).
Sebagai hasil dari klaim di komentar, saya telah menambahkan patokan mikro di sini untuk 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
Jika Anda khawatir tentang kinerja, Anda bisa menghitung rentang sekali
$ python3.5 -m timeit -s "R=range(10000, 30000)" "5 in R"
10000000 loops, best of 3: 0.0551 usec per loop