Недавно я попробовал сделать свой калькулятор на питоне. Но все застопорилось на моменте, когда надо было как-то преобразовать тип «строки» в арифметические операции, а такого в обычном преобразовании типов нет. И чтобы не городить небоскребы из if’ов, мне подсказали, что есть такая функция eval(), которая сделает все как надо.
Я начал гуглить как применить эту функцию, и действительно, у многих кто впервые ее использовал, возникал тот же вопрос, что и у меня - как сделать так, чтобы интерпретатор питона воспринимал арифметические символы при вводе через input() именно как арифметические операции, а не строки.
Но тут я полистал форумы, и на многих форумах отговаривают от использования eval(). Пишут, что использовать эту функцию нежелательно, т.к. она отъедает много ресурсов процессора, и вообще небезопасна, т.к. можно пропихнуть через эту функцию вредоносный код.
Так ли это на самом деле? Что за вредоносный код? Зачем кому-то пропихивать его в своей же программе? Если все так плохо, какие еще варианты?
Перемещено leave из general