print 'a'
# 'a'
print 'a', 'b'
# 'a b\n'
print 'a', 'b',
# 'a b'
print это только интерфейс над sys.stdout.write(), который добавляет немного форматирования
import sys
sys.stdout.write('a')
# 'a'
Также можно переопределить stdout.write и print начнет вести себя по другому:
sys.stdout = open('file.txt', 'w')
так как у open есть метод write, то print теперь будет писать в файл
print 'abc'
# уйдет все в файл, а не в stdout
Но есть еще более удобная форма для кратковременного изменения поведения принта:
log = open('file.txt', 'w')
print >> log, 'a', 'b'
# все запишется в файл
print 'ab'
# выведет в стандартный поток вывода (stdout), по дефолту на экран, если не было выбрано перенаправления например (python sript.py > /path/to/txt.txt)