Tengo un problema con verificación en un if.
Código
#Calculadora def menu(operacion): def sumar(a, b): return a + b def restar(a, b): return a - b def multi(a, b): return a * b def divi(a, b): return a / b if operacion == 'sumar': return sumar elif operacion == 'restar': return restar elif operacion == 'multi': return multi elif operacion == 'divi': return divi print '''/// Calculadora /// /// Python ///''' valor = str(raw_input('Introduce la operacion: ')) #Comprobamos si existe dicha opcion if valor == 'sumar' or 'restar': #Le damos el valor a menu opcion = menu(valor) # Comprobamos que los valores sean numeros try: num1 = float(raw_input('Primera cifra: ')) num2 = float(raw_input('Primera cifra: ')) except ValueError: print 'Introduzca un numero.' print 'El resultado es:', opcion(num1, num2) else: print 'El valor introducido no es correcto'
El problema se encuentra acá:
Código
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
else: 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.