¿Cómo escribirías, en python:

if key < 1 or key > 34:

Lo he intentado de todas las formas posibles y me parece muy frustrante.

108
Zak 22 ago. 2011 a las 01:11

3 respuestas

La mejor respuesta

Si key no es un int o float sino un str ing, primero debe convertirlo en un int haciendo

key = int(key)

O a una float haciendo

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 clara.

209
agf 21 ago. 2011 a las 21:24

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 a y b son ambos verdaderos

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

17
deex 13 jun. 2018 a las 17:54

Simplemente puede usar esto:

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

Y tu problema debería resolverse.

0
Václav 12 nov. 2019 a las 13:40