Является ли строка математическим выражением?

Напишите функцию, которая будет возвращать True, если переданная строка (например, "5 + 4") является математическим выражением. В противном случае функция должна возвращать False.

Примечания:

  • из операторов учитываем только +, -, *, /, %
  • в переданной строке будет максимум два числа
  • оба числа будут целыми, из диапазона 0-9

Примеры

math_expr("4 + 5") ➞ True

math_expr("4*6") ➞ True

math_expr("4*no") ➞ False

Варианты решений

def math_expr(expr):
    return all(ch in '0123456789 +-*/%' for ch in expr)
def math_expr(expr):
    try:
        return isinstance(eval(expr), (int, float))
    except NameError:
        return False
python books logo

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

×