web-dev-qa-db-fra.com

Python simple si ou déclaration logique

Comment écririez-vous, en python:

if key < 1 or key > 34:

J'ai essayé tous les moyens possibles et je le trouve très frustrant.

84
Zak

Si key n'est pas un int ou float mais un string, vous devez d'abord le convertir en int

key = int(key)

ou à une float en faisant

key = float(key)

Sinon, ce que vous avez dans votre question devrait fonctionner, mais

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

ou

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

serait un peu plus clair.

171
agf

Voici un truc booléen:

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

mais 

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 ), est faux seulement si a et b sont tous les deux vrais

not (a or b)est vrai que si a et be sont tous les deux faux.

13
spikeysnack

vous pouvez simplement utiliser 

si (clé <1) ou (clé> 34):

votre problème sera résolu

0
joginder singh