Nobody is switching to Python 3. If you go first you get all of the pain and no advantages (plus switching later isn't very hard anwyay). I would import unicode_literals, division, and the print() function from __future__ and stick with 2.6.
sep is the separator between arguments, so you can do something like:
>> print('a','b','c',sep='')
abc
end is the value at the end of the line (useful, for example, if you want to print without a newline at the end).file lets you specify a file to print to, so for example you can do file=sys.stderr to print to stderr instead of stdout.
print "comma prevents a newline from being printed",
print >> sys.stderr, "Any file object can be used"
The change to a function is purely for consistency, not functionality.
from __future__ import print_function
map(print, [1,2,3])
def test(*a, **b):
print(*a, **b)
test(12)
with open('t.out', 'w') as f:
test(12,13, sep='--', file=f)