Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
А это ссылки на подборку по основному курсу по Python
Встроенная функция eval()
В данной статье я вернусь к базовому курсу Python. Функция eval() того стоит. Эта функция
- Осуществляет разбор строки.
- Компилирует его в исполняемый интерпретатором Python код.
- Выполняет его с помощью интерпретатора Python.
- Возвращает результат.
Параметры строки:
- 1-й, обязательный. Строка для выполнения.
- 2-й, словарь глобальных переменных.
- 3-й, словарь локальных переменных.
Важно отметить, что строка для выполнения должна быть выражением, а не фрагментом программы. Т.е. if, for, while и другие программные конструкции здесь не допускаются. Также нельзя в выражении использовать знак присвоения ('=').
Пример 1.
a = eval('2 + (3/4 + 89) /2 + 3')
print(a)
Результат
49.875
Пример 2
a, b = 10, 13
print(eval('a ** b'))
Результат
10000000000000
Пример 3
a, b = 'qwertyu', 'a'
print(eval('a + b*5'))
Результат
qwertyuaaaaa
Пример 4
print(eval('10 == (3**2 + 1)'))
Результат
True
Несколько слов по поводу второго и третьего не обязательных параметров. Они необходимы, если eval() используется внутри функции и нужно точно указать, какие переменные нужно иметь в виду при вычислении.
Например
print(eval("x - y", {'x': x}, {'y': y}))
Здесь указывается, что x - глобальная переменная, y - локальная переменная.
Функция eval() довольно универсальна. В ней можно использовать методы подключенных библиотек.
Пример 5.
import math
a, b = 10, 11
print(eval('math.sqrt(a) * b'))
Результат
34.785054261852174
Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.