Python3, лучшие альтернативы eval()? (ввод как выражение)

Вопрос: Я использую Python 3. Я полагаю, что лучший способ задать это, как я могу ввести выражение без использования eval(input("Input: "))? Сейчас я простой пользователь, поэтому для меня требовался eval for - математический калькулятор. Лучший ответ: В зависимости от того, насколько сложны ваши выражения, ast.literal_eval может быть более безопасной альтернативой. Ответ №1 Если вы единственный

Вопрос:

Я использую Python 3.

Я полагаю, что лучший способ задать это, как я могу ввести выражение без использования eval(input(«Input: «))?

Сейчас я простой пользователь, поэтому для меня требовался eval for – математический калькулятор.

Лучший ответ:

В зависимости от того, насколько сложны ваши выражения, ast.literal_eval может быть более безопасной альтернативой.

Ответ №1

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

В противном случае просто используйте безопасную библиотеку для конкретной задачи, которая вам нужна. Например, numexpr, я думаю, для калькулятора.

Ответ №2how can I input an expression without using eval(input(«Input: «))

просто не используйте eval. В Python 3.x input является заменой raw_input поэтому вам не нужно eval. Вы можете просто написать свое выражение в качестве input(«Input: «)

Более того, в Python 2.X вы должны использовать raw_input(«Input: «) вместо eval(input(«Input: «))

Оцените статью
Добавить комментарий