Declaración simple o lógica en Python [cerrado]

109

¿Cómo escribirías lo siguiente en Python?

if key < 1 or key > 34:

He intentado todas las formas en que puedo pensar y lo encuentro muy frustrante.

Zak
fuente
6
¿Qué problema tienes? ¿Qué error obtienes? ¿¡Tu ejemplo es un código Python válido en mi opinión !?
Achim
¿Estás buscando una sintaxis específica? La declaración sobre la que escribiste es cómo la escribirías en Python.
Yony

Respuestas:

222

Si keyno es un into floatpero un string, debe convertirlo en el intprimero haciendo

key = int(key)

oa un floathaciendo

key = float(key)

De lo contrario, lo que tiene en su pregunta debería funcionar, pero

if (key < 1) or (key > 34):

o

if not (1 <= key <= 34):

sería un poco más claro.

agf
fuente
19

Aquí hay una cosa booleana:

if (not suffix == "flac" )  or (not suffix == "cue" ):   # WRONG! FAILS
    print  filename + ' is not a flac or cue file'

pero

if not (suffix == "flac"  or suffix == "cue" ):     # CORRECT!
       print  filename + ' is not a flac or cue file'

(not a) or (not b) == not ( a and b ) , es falso solo si ayb son ambos verdaderos

not (a or b) es verdadero solo si ay be son ambos falsos.

spikeysnack
fuente