Я пишу некоторые простые математические функции в Python. Мне нужно использовать метод eval() для оценки введенной пользователем функции. Однако, если пользователь вводит функцию y = x ** 0.4, мой код начинает давать комплексные числа, когда x отрицателен. Как и в тесте, я написал:Метод eval() Возвращение нежелательного комплексного номера в Python
print(eval("(-9.451)**0.4"))
Где -9.451 - это случайное отрицательное число.
Это возвращает:
(0.7588806326318368+2.335594429732145j)
В действительности, (-9,451) ** 0,4 следует оценивать в 2.455789314.
Чтобы доказать это, заметим, график у = х ** 0,4:
Почему я получаю комплексные числа?
Любая помощь была бы принята с благодарностью. Спасибо ...
Большое вам спасибо за ваш быстрый ответ. Я постараюсь учесть это в будущем. – Eragon20