Foros del Web » Programando para Internet » Python »

¿La función range se puede usar en un if?

Estas en el tema de ¿La función range se puede usar en un if? en el foro de Python en Foros del Web. Hola! Estoy haciendo algunas pruebas con menús de opciones. Osea, lo típico, tecleando opción 1 el código hace una cosa. Con la opción 2, otra...etc... ...
  #1 (permalink)  
Antiguo 29/06/2014, 04:00
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 15 años
Puntos: 9
¿La función range se puede usar en un if?

Hola!

Estoy haciendo algunas pruebas con menús de opciones. Osea, lo típico, tecleando opción 1 el código hace una cosa. Con la opción 2, otra...etc...

He probado este código para testear pero no me funciona:

Código Python:
Ver original
  1. valor = int(input('Valor (1-3) '))
  2.  
  3. # Si introducimos un rango de 1-3 ha de mostrar 'SI'
  4.  
  5. if valor == range(1,4):
  6.     print('SI')
  7. else:
  8.     print('NO')

Pues aunque la variable valor toma el numero que le damos, siempre me devuelve el else. Osea, 'NO'.

¿No funciona la función range en este caso? Algo hago mal...seguro.
  #2 (permalink)  
Antiguo 29/06/2014, 04:45
Avatar de kojicomics  
Fecha de Ingreso: junio-2013
Mensajes: 49
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: ¿La función range se puede usar en un if?

La función range(1,4) crea una lista equivalente a (1, 2, 3), mientras que la variable valor sólo contiene un número y por tanto nunca será igual a la lista

En lugar de utilizar un operador de igualdad "==" debes utilizar el operador "in" que comprueba si el valor está dentro de la lista:

Código Python:
Ver original
  1. valor = int(input('Valor (1-3) '))
  2.      
  3. # Si introducimos un rango de 1-3 ha de mostrar 'SI'
  4.      
  5. if valor in range(1,4):
  6.     print('SI')
  7. else:
  8.     print('NO')

Saludos
  #3 (permalink)  
Antiguo 29/06/2014, 05:19
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 15 años
Puntos: 9
Respuesta: ¿La función range se puede usar en un if?

Muchas gracias. Lo que mas rabia da, es lo fácil que es usando la lógica cuando te lo muestran. Y mira que le he dado vueltas...

Saludos!

Etiquetas: range, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:26.