Функция 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'