Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] [Python] Verificar variables con if

Estas en el tema de [Python] Verificar variables con if en el foro de Python en Foros del Web. Buenas, Tengo un problema con verificación en un if. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Python: Ver original #Calculadora def menu ( operacion ) :       ...
  #1 (permalink)  
Antiguo 19/08/2015, 10:38
Avatar de Tropy  
Fecha de Ingreso: diciembre-2013
Mensajes: 62
Antigüedad: 10 años, 11 meses
Puntos: 1
[Python] Verificar variables con if

Buenas,

Tengo un problema con verificación en un if.
Código Python:
Ver original
  1. #Calculadora
  2. def menu(operacion):
  3.  
  4.     def sumar(a, b):
  5.         return a + b
  6.  
  7.     def restar(a, b):
  8.         return a - b
  9.  
  10.     def multi(a, b):
  11.         return a * b
  12.  
  13.     def divi(a, b):
  14.         return a / b
  15.  
  16.     if operacion == 'sumar':
  17.         return sumar
  18.     elif operacion == 'restar':
  19.         return restar
  20.     elif operacion == 'multi':
  21.         return multi
  22.     elif operacion == 'divi':
  23.         return divi
  24.  
  25. print '''/// Calculadora ///
  26. /// Python ///'''
  27.  
  28. valor = str(raw_input('Introduce la operacion: '))
  29. #Comprobamos si existe dicha opcion
  30. if valor == 'sumar' or 'restar':
  31.     #Le damos el valor a menu
  32.     opcion = menu(valor)
  33.     # Comprobamos que los valores sean numeros
  34.     try:
  35.         num1 = float(raw_input('Primera cifra: '))
  36.         num2 = float(raw_input('Primera cifra: '))
  37.     except ValueError:
  38.         print 'Introduzca un numero.'
  39.  
  40.     print 'El resultado es:', opcion(num1, num2)
  41. else:
  42.     print 'El valor introducido no es correcto'

El problema se encuentra acá:

Código Python:
Ver original
  1. if valor == 'sumar' or 'restar':

Al introducir en consola sumar o restar se ejecuta bien la función.
Pero si introduzco un número o letra mal no me salta al else

Código Python:
Ver original
  1. else:
  2.     print 'El valor introducido no es correcto'

Intento que si se introduce una letra mal o número me lance el else, pero no funciona.
Sin embargo hago el if sin el 'or' y funciona correctamente. ¿A qué puede deberse?

Agradezco cualquier sugerencia.
Gracias.

Saludos.
  #2 (permalink)  
Antiguo 19/08/2015, 11:42
 
Fecha de Ingreso: febrero-2011
Mensajes: 54
Antigüedad: 13 años, 8 meses
Puntos: 18
Respuesta: [Python] Verificar variables con if

Esto:
Código:
if valor == 'sumar' or 'restar'.
:no es correcto el contexto en que lo usas.

El operador 'or' devuelve el primer valor si este es verdadero, si no devuelve el segundo.

Estas opciones deberian funcionarte:

Código Python:
Ver original
  1. if valor == 'sumar' or valor == 'restar':
o
Código Python:
Ver original
  1. if valor in ('sumar','restar'):
  #3 (permalink)  
Antiguo 19/08/2015, 11:52
Avatar de Tropy  
Fecha de Ingreso: diciembre-2013
Mensajes: 62
Antigüedad: 10 años, 11 meses
Puntos: 1
Respuesta: [Python] Verificar variables con if

Gracias por tu respuesta, al parecer ha sido un error tonto.
Pero gracias lo tendré en cuenta próximamente.

Saludos.

Etiquetas: variables, verificar
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 07:24.