Отказ от ответственности : смотрите комментарии, и нет, вы не должны размещать это на веб-странице / сервисе, который, кажется, люди предполагают, что вы пишете. Однако для создания игрушечного калькулятора, который вы запускаете локально дома, этой встроенной функции вполне достаточно.
По вопросам безопасности см. ast
, ast.literal_eval
для действительно простых случаев. simpleeval
имеет приятную упаковку для ast
, которую вы можете предпочесть использовать как есть и / или извлечь из нее уроки (https://github.com/danthedeckie/simpleeval/blob/master/simpleeval.py) / disclaimer
Предполагая, что вы имеете в виду, пользователь может ввести функцию:
f = input("Function of x: ")
x = float(input("x: "))
print(eval(f))
Затем введите x+2
для первого ввода, 2
для второго и увидите результат, равный 4
:
Function of x: x+2
x: 2
4
Чтобы сделать его более универсальным, вы можете импортировать все из math
:
from math import *
f = input("Function of x: ")
x = float(input("x: "))
print(eval(f))
, затем вы можете ввести cos(x)
, например:
Function of x: cos(x)
x: 3.1415
-0.9999999957076562