оператор python if с переменным математическим оператором

Привет, Я пытаюсь вставить переменный математический оператор в оператор if, пример того, чего я пытаюсь достичь:

maths_operator = "==" if "test" maths_operator "test": print "match found" maths_operator = "!=" if "test" maths_operator "test": print "match found" else: print "match not found" 

очевидно, что это не удается с SyntaxError: invalid syntax . Я пробовал использовать exec и eval, но не работал в выражении if, какие параметры мне нужно обойти?

3 Solutions collect form web for “оператор python if с переменным математическим оператором”

Используйте пакет оператора вместе со словарем для поиска операторов в соответствии с их текстовыми эквивалентами. Все они должны быть либо унарными, либо бинарными операторами, чтобы работать последовательно.

 import operator ops = {'==' : operator.eq, '!=' : operator.ne, '<=' : operator.le, '>=' : operator.ge, '>' : operator.gt, '<' : operator.lt} maths_operator = "==" if ops[maths_operator]("test", "test"): print "match found" maths_operator = "!=" if ops[maths_operator]("test", "test"): print "match found" else: print "match not found" 

Используйте модуль operator :

 import operator op = operator.eq if op("test", "test"): print "match found" 

Я пробовал использовать exec и eval, но не работал в выражении if

Для полноты нужно упомянуть, что они действительно работают, даже если опубликованные ответы обеспечивают лучшее решение. Вы должны будете оценить () все сравнение, а не только оператор:

 maths_operator = "==" if eval('"test"' + maths_operator '"test"'): print "match found" 

или выполните строку:

 exec 'if "test"' + maths_operator + '"test": print "match found"' 
  • Python: проверьте, является ли объект последовательностью
  • JUMP_FORWARD или JUMP_ABSOLUTE с инструкцией IF? Python 2.5
  • Как добавить, если условие в графе TensorFlow?
  • Слишком много утверждений if
  • 'TypeError: не может умножить последовательность на non-int типа' float '' в условии if. в Python
  • Pythonic способ использовать второе условие в списках
  • python repeat program while true
  • Что такое значение None?
  • Jinja2 если утверждение в vs равно на dict
  • Python - импорт в if
  • python, если оператор elif else
  • Python - лучший язык программирования в мире.