тот же результат, несколько различных способов вызова функции печати.
Первый вычисляет новую строку, которая является конкатенацией двух строк, а затем вызывает печать с единственным результатом аргумента.
Второй печатает первый аргумент, печатает символ разделителя по умолчанию (пробел), затем печатает второй аргумент. Сепаратор можно переопределить:
>>> print("Hello","There",sep='+')
Hello+There
Вы также можете увидеть разницу в разборке. Заметим, что компилятор байтового кода Python выяснил, что конкатенация двух констант является константой и только сгенерированным байтовым кодом для конечной константы.
>>> import dis
>>> dis.dis(lambda: print("Hello "+"There"))
1 0 LOAD_GLOBAL 0 (print)
3 LOAD_CONST 3 ('Hello There')
6 CALL_FUNCTION 1 (1 positional, 0 keyword pair)
9 RETURN_VALUE
>>> dis.dis(lambda: print("Hello","There"))
1 0 LOAD_GLOBAL 0 (print)
3 LOAD_CONST 1 ('Hello')
6 LOAD_CONST 2 ('There')
9 CALL_FUNCTION 2 (2 positional, 0 keyword pair)
12 RETURN_VALUE