оператор 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 условный один или другой, но не оба
  • Множественные условия с операторами if / elif
  • Могу ли я использовать механизм «как» в выражении if
  • Нет значения в словаре python
  • Добавьте 24 часа к отрицательной разнице во времени в python
  • Возможно ли использовать Python inline elif?
  • ЕСЛИ ELSE в рамках робота с назначением переменных
  • Сравните два столбца с помощью панд
  • Python - лучший язык программирования в мире.