python - saber - ¿Cómo verifico si un int está entre los dos números?
isinstance python español (6)
El problema con las comparaciones es que pueden ser difíciles de depurar cuando colocas un >=
donde debería haber un <=
# v---------- should be <
if number >= 10000 and number >= 30000:
print ("you have to pay 5% taxes")
Python te permite escribir lo que quieres decir con palabras
if number in xrange(10000, 30001): # ok you have to remember 30000 + 1 here :)
En Python3, necesitas usar el range
lugar de xrange
.
Edición: la gente parece estar más preocupada por las marcas de microbench y por cómo enfrían las operaciones de encadenamiento. Mi respuesta es sobre la programación defensiva (menos superficie de ataque para errores).
Como resultado de una reclamación en los comentarios, he agregado el micro benchmark aquí para 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
Si le preocupa el rendimiento, puede calcular el rango una vez
$ python3.5 -m timeit -s "R=range(10000, 30000)" "5 in R"
10000000 loops, best of 3: 0.0551 usec per loop
Estoy usando 2.3 IDLE y estoy teniendo problemas.
Necesito verificar si un número está entre otros dos números, 10000 y 30000:
if number >= 10000 and number >= 30000:
print ("you have to pay 5% taxes")
No está funcionando muy bien.
Su fragmento de código,
if number >= 10000 and number >= 30000:
print ("you have to pay 5% taxes")
en realidad comprueba si el número es mayor que 10000 y 30000.
Suponiendo que desea verificar que el número esté en el rango de 10000 a 30000, puede usar la comparación de intervalos de Python:
if 10000 <= number <= 30000:
print ("you have to pay 5% taxes")
Esta característica de Python se describe con más detalle en la documentación de Python .
Su operador es incorrecto. Debería ser if number >= 10000 and number <= 30000:
Además, Python tiene una taquigrafía para este tipo de cosas, if 10000 <= number <= 30000:
if 10000 <= number <= 30000:
pass
if number >= 10000 and number <= 30000:
print ("you have to pay 5% taxes")
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