Простое «если» или логический оператор в Python [закрыто]

109

Как бы вы написали следующее на Python?

if key < 1 or key > 34:

Я пробовал все, что только мог придумать, и нахожу это очень разочаровывающим.

Zak
источник
6
Какая у вас проблема? Какая у вас ошибка? На мой взгляд, ваш пример - действительный код Python !?
Ахим
Вы ищете конкретный синтаксис? Заявление, о котором вы написали, - это то, как вы бы написали его на Python.
Йони

Ответы:

222

Если keyэто не intили, floatа str, вам нужно преобразовать его в intпервое, выполнив

key = int(key)

или floatсделать

key = float(key)

В противном случае то, что у вас есть в вашем вопросе, должно работать, но

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

или

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

было бы немного яснее.

AGF
источник
19

Вот логическая вещь:

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

но

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 ) , ложно, только если a и b оба истинны

not (a or b) истинно, только если a и be оба ложны.

шиповник
источник