তুলনাগুলির সাথে সমস্যাটি হ'ল আপনি যখন >=
সেখানে একটি হওয়া উচিত সেখানে রেখে ডিবাগ করা তাদের পক্ষে কঠিন<=
# v---------- should be <
if number >= 10000 and number >= 30000:
print ("you have to pay 5% taxes")
পাইথন আপনাকে কথায় কী বোঝাতে চাইছে কেবল তা লিখতে দেয়
if number in xrange(10000, 30001): # ok you have to remember 30000 + 1 here :)
পাইথন 3 এ আপনার range
পরিবর্তে ব্যবহার করা উচিত xrange
।
সম্পাদনা: লোকেরা মাইক্রোবেঞ্চ চিহ্ন এবং কীভাবে শীতল শৃঙ্খলা পরিচালনার সাথে আরও উদ্বিগ্ন বলে মনে হচ্ছে। আমার উত্তরটি ডিফেন্সিভ (বাগের জন্য কম আক্রমণ পৃষ্ঠের) প্রোগ্রামিং সম্পর্কে।
মন্তব্যে দাবির ফলস্বরূপ, আমি পাইথন ৩.২.২ এর জন্য এখানে মাইক্রো বেঞ্চমার্ক যুক্ত করেছি
$ 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