Vấn đề với việc so sánh là chúng có thể khó gỡ lỗi khi bạn đặt một >=
nơi cần có<=
# v---------- should be <
if number >= 10000 and number >= 30000:
print ("you have to pay 5% taxes")
Python cho phép bạn viết những gì bạn muốn nói
if number in xrange(10000, 30001): # ok you have to remember 30000 + 1 here :)
Trong Python3, bạn cần sử dụng range
thay vì xrange
.
chỉnh sửa: Mọi người dường như quan tâm nhiều hơn đến nhãn hiệu microbench và cách hoạt động của chuỗi mát mẻ. Câu trả lời của tôi là về lập trình phòng thủ (ít tấn công bề mặt cho lỗi).
Do khiếu nại trong các nhận xét, tôi đã thêm điểm chuẩn vi mô ở đây cho 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
Nếu bạn lo lắng về hiệu suất, bạn có thể tính toán phạm vi một lần
$ python3.5 -m timeit -s "R=range(10000, 30000)" "5 in R"
10000000 loops, best of 3: 0.0551 usec per loop