Найти - Пользователи
Полная версия: Решение выражения из ввода
Начало » Центр помощи » Решение выражения из ввода
1
1736w
Помогите с кодом с:
Пользователь вводит пример , допустим 4+10-8=
Гарантируется, что числа, входящие в пример, являются целыми и берутся из интервала от 1 до 100.
на вывод должно пойти число являющееся результатом вычисления примера.
JOHN_16
 >>> s = eval('1 + 3')
>>> s
4
scidam
eval - небезопасная функция, с ее помощью пользователь может выполнить, например, rm -rf /, что плохо…
Если Python3.x, то безопасней:

 import ast
s = ast.literal_eval('1+2+3+4')

В Python2.x literal_eval таким образом не сработает, но и здесь можно придумать кое-что, но мы ориентируемся на Python3…
FishHook
В виде бреда, вот безопасное решение

 import execjs
execjs.eval("1+2")
izekia
как вариант:
 from sympy.parsing.sympy_parser import parse_expr
  
print(parse_expr('1 + 2 + 3', evaluate=False), '=', parse_expr('1 + 2 + 3'))
1 + 2 + 3 = 6
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB