Разбор функции из текстового файла в Python - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь разобрать функцию f = sin (2 * pi * x) из текстового файла. В основном коде функция остается внутри цикла for и примет входное значение для x, которое уже определено. Теперь, как я могу разобрать эту функцию в моем основном коде, чтобы получить выходные данные с плавающей запятой для функции? Я новичок в питоне. Любая помощь очень ценится. Спасибо.

1 Ответ

0 голосов
/ 14 января 2019

Вы можете использовать eval. Но прежде чем читать дальше, имейте в виду, что при использовании eval может быть подвержен эксплойтам . Если у вас нет контроля над вводом (т. Е. Функцией), вам потребуется тройная проверка, чтобы выполнить соответствующие проверки работоспособности входной строки.

f = 'sin(2*pi*x)'
for x in [...]:
    y = eval(f, {}, {'sin': np.sin, 'pi': np.pi, 'x': x})

Если вы можете определить некоторую структуру для функций ввода, лучше проанализировать строки напрямую, например, с помощью регулярных выражений, а затем вычислить результат. Но это зависит от того, что возможно в качестве входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...