Функция exec возвращает None вместо результата введенного выражения

У меня пробный код с использованием функции exec.

s = input()
print(exec(s))

Я ввёл в командную строку:

l = 'abc'

В итоге в командной строке выводит None.

Как это работает и как сделать так, чтобы в командной строке вывело 'abc'?


Ответы (2 шт):

Автор решения: Данилкин PUBG

Вы присваиваете переменной 's' уже значение.. что бы был результат, вы должны ввести в input чему s должна быть равна, в нашем случае нужно вывести abc, тогда делаем так:

Запускаем код > пишем: print('abc') > получаем результат от процесса exec.

s = input()

exec(s)
→ Ссылка
Автор решения: 0xdb

В документации к функции exec сказано:

The return value is None.

Выводится значение возврата функции, ожидать получить что-то другое не стоит.

>>> s = input ()
l = 'abc'
>>> print (exec (s))
None
>>> l
'abc'
→ Ссылка