Вопрос:
Я использую 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: «))