Simples 'if' ou declaração lógica em Python [fechado]

109

Como você escreveria o seguinte em Python?

if key < 1 or key > 34:

Tentei de todas as maneiras que consigo pensar e estou achando muito frustrante.

Zak
fonte
6
Que problema você tem? Qual erro você obteve? Seu exemplo é um código python válido na minha opinião !?
Achim de
Você está procurando uma sintaxe específica? A declaração sobre a qual você escreveu é como você a escreveria em Python.
Yony

Respostas:

222

Se keynão for um intou, floatmas um str, você precisa convertê-lo em um intprimeiro, fazendo

key = int(key)

ou a floatfazer

key = float(key)

Caso contrário, o que você tem em sua pergunta deve funcionar, mas

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

ou

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

seria um pouco mais claro.

agf
fonte
19

Aqui está uma coisa booleana:

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

mas

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 ) , é falso apenas se a e b forem ambos verdadeiros

not (a or b) só é verdadeiro se a e be forem falsos.

espigão
fonte