Полагаю, вы научились использовать Jupyter
или консоль python.VS Code - это IDE;это в основном прославленный текстовый редактор с функциями, которые помогают разработчикам.Вы должны привыкнуть использовать python в консоли, где каждая строка / команда автоматически печатает результаты, в то время как вы, скорее всего, создаете сценарий и ожидаете, что произойдет то же самое.Я не верю, что `return 'имеет какое-либо отношение к тому, что вы спрашиваете, поскольку он действует одинаково в любом случае.
EDIT (как я нашел фактическую документацию)
Когда в интерактивной консоли Python вызывает sys.displayhook
после каждого выполнения.Вот фактическая документация:
Если значение не None, эта функция печатает repr (значение) в sys.stdout и сохраняет значение в builtins._.Если repr (значение) не кодируется в sys.stdout.encoding с помощью обработчика ошибок sys.stdout.errors (который, вероятно, является «строгим»), закодируйте его в sys.stdout.encoding с помощью обработчика ошибок «backslashreplace».
sys.displayhook вызывается в результате оценки выражения, введенного в интерактивном сеансе Python.Отображение этих значений можно настроить, назначив sys.displayhook еще одну функцию с одним аргументом.
Вот мое основное объяснение Надеюсь, я объясню это достаточно хорошо
В консоли python результаты каждой строки / команды печатаются после выполнения (т. Е. Когда вы нажимаете Enter). (Для контекста каждая функция / операция неявно возвращает None
, если больше ничего не возвращается, поэтому не печатается)
При запуске сценария python в консоли ничего не будет отображаться, если явно не напечатано (другие случаи - необработанные трассировки ошибок, ведение журнала или запись в stdout
и т. Д.)
Таким образом, в основном строка
df.head()
в сценариивыполняет функцию head
для df
и возвращает результаты, но с результатами ничего не происходит, если вы не присвоите их переменной или не распечатаете.Это то же самое, что просто написать:
"This will only print in a console"
Если эта строка выполняется в интерактивной консоли, она вызовет sys.displayhook
со значением и напечатает результаты:
'This will only print in a console'
Но еслиЗапущенный в скрипте, это, по сути, ненужная строка кода, если она не присвоена переменной.
По сути, консоль предполагает, что вы хотите видеть результаты при кодировании. (в основном вызывая специальный print
в каждой строке, которая не печатает None
и не вызывается при явном запуске print
) В то время как при запуске скрипта он печатается только на консоли, когдаявно заданные или другие особые случаи.