print() Функция возвращает None. Вы печатаете это возвращаемое значение.
Это потому, что print() ей нечего возвращать; ее задача - записать аргументы, после преобразования их в строки, в файловый объект (который по умолчанию имеет значение sys.stdout). Но все выражения в Python (включая вызовы) выдают значение, поэтому в таких случаях создается None.
Похоже, вы путаете печать с возвратом. Интерактивный интерпретатор Python также выполняет печать; он печатает результат выражений, выполняемых непосредственно в командной строке, при условии, что они не выдают None:
>>> None >>> 'some value' 'some value'
Строка была передана (напечатана) на ваш терминал, в то время как None этого не было.
Поскольку print() возвращает None, но записывает в тот же вывод (ваш терминал), результаты могут выглядеть одинаково, но это очень разные действия. Я могу заставить print() записать во что-то другое, и вы ничего не увидите в терминале: