Форум сайта python.su
Помогите с кодом с:
Пользователь вводит пример , допустим 4+10-8=
Гарантируется, что числа, входящие в пример, являются целыми и берутся из интервала от 1 до 100.
на вывод должно пойти число являющееся результатом вычисления примера.
Офлайн
>>> s = eval('1 + 3') >>> s 4
Офлайн
eval - небезопасная функция, с ее помощью пользователь может выполнить, например, rm -rf /, что плохо…
Если Python3.x, то безопасней:
import ast s = ast.literal_eval('1+2+3+4')
Отредактировано scidam (Ноя. 13, 2016 08:23:59)
Офлайн
В виде бреда, вот безопасное решение
import execjs execjs.eval("1+2")
Офлайн
как вариант:
from sympy.parsing.sympy_parser import parse_expr print(parse_expr('1 + 2 + 3', evaluate=False), '=', parse_expr('1 + 2 + 3'))
Офлайн