Simple 'if' ou instruction logique en Python [fermé]

109

Comment écririez-vous ce qui suit en Python?

if key < 1 or key > 34:

J'ai essayé toutes les façons dont je peux penser et je trouve cela très frustrant.

Zak
la source
6
Quel problème as-tu? Quelle erreur obtenez-vous? Votre exemple est un code python valide à mon avis !?
Achim
Vous recherchez une syntaxe spécifique? La déclaration que vous avez décrite est la façon dont vous l'écririez en Python.
Yony

Réponses:

222

Si ce keyn'est pas un intou floatmais un string, vous devez le convertir en intpremier en faisant

key = int(key)

ou à un floaten 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.

agf
la source
19

Voici une chose booléenne:

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

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

spikeysnack
la source