주어진 정수가 다른 두 정수 사이에 있는지 어떻게 알 수 있습니까 (예 :보다 크거나 같고 10000
보다 작거나 같습니다 30000
)?
2.3 IDLE을 사용하고 있으며 지금까지 시도한 것이 작동하지 않습니다.
if number >= 10000 and number >= 30000:
print ("you have to pay 5% taxes")
답변
if 10000 <= number <= 30000:
pass
답변
>>> r = range(1, 4)
>>> 1 in r
True
>>> 2 in r
True
>>> 3 in r
True
>>> 4 in r
False
>>> 5 in r
False
>>> 0 in r
False
답변
운영자가 잘못되었습니다. 이어야 if number >= 10000 and number <= 30000:
합니다. 또한 파이썬에는 이런 종류의 줄임말이 if 10000 <= number <= 30000:
있습니다.
답변
코드 스 니펫
if number >= 10000 and number >= 30000:
print ("you have to pay 5% taxes")
실제로 숫자가 10000과 30000보다 큰지 확인합니다.
숫자가 10000-30000 범위에 있는지 확인한다고 가정하면 Python 간격 비교를 사용할 수 있습니다.
if 10000 <= number <= 30000:
print ("you have to pay 5% taxes")
이 Python 기능은 Python 설명서에 자세히 설명 되어 있습니다 .
답변
if number >= 10000 and number <= 30000:
print ("you have to pay 5% taxes")
답변
비교의 문제는 당신 >=
이 있어야 할 곳에 넣을 때 디버깅하기가 어렵다는 것입니다.<=
# 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 :)
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
답변
숫자 사이의 범위를 정의하십시오.
r = range(1,10)
그런 다음 사용하십시오.
if num in r:
print("All right!")