2011-08-21 13 views
56

¿Cómo escribir, en python:Python simple si o lógica comunicado

if key < 1 or key > 34: 

He intentado todo lo que puedo pensar, y me es muy frustrante.

+7

¿Qué pasa con eso? –

+4

¿Qué problema tienes? ¿Qué error obtienes? Tu ejemplo es un código python válido en mi opinión? – Achim

+0

¿Está buscando una sintaxis específica? La declaración que escribió sobre _es_ cómo la escribiría en Python. – Yony

Respuesta

118

Si key no es una int o float sino un ing str, es necesario convertirla en una primera int haciendo

key = int(key) 

oa un float haciendo

key = float(key) 

lo contrario , lo que tienes en tu pregunta debería funcionar, pero

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

o

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

sería un poco más claro.

+1

gracias, olvidé que aunque un número, la clave era en realidad una cadena. perdón por una primera pregunta estúpida en el sitio. intentaré y trabajaré más para resolver mis problemas antes de publicarlos. – Zak

+0

@agf, esto es un poco meta: ¿cómo llegas al * 15 minutos *? –

+0

No puede aceptar una respuesta dentro de los 15 minutos de hacer una pregunta. – agf

7

Aquí es una cosa booleano:

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), por lo tanto tienen que ser falsas equiparar a la verdadera

not (a or b) es cierto sólo si a y ser son ambos falsos