JuanPablo
JuanPablo

Reputation: 24764

python : comma in print as "\t"

the , in print added a white space

>>> print "a","b"
a b

If I need a \t, I put

>>> print "a","\t","b"
a       b

How I can change the output of , to a \t?

Upvotes: 3

Views: 111188

Answers (4)

Robin
Robin

Reputation: 613

https://docs.python.org/2/reference/simple_stmts.html#print

like this print "Hello", "workd!",

Upvotes: 0

Shabahat M. Ayubi
Shabahat M. Ayubi

Reputation: 125

The easiest way

print("%s\t%s",%(a,b))

Upvotes: 0

Martijn Pieters
Martijn Pieters

Reputation: 1121644

Use str.join() instead:

print '\t'.join(('a', 'b'))

The python print statement will convert any element in the expression to string and join them using a space; if you want to use a different delimiter you'll have to do the joining manually.

Alternatively, use the print() function, which has been introduced to ease transition to Python 3:

from __future__ import print_function
print('a','b',sep='\t')

The print() function accepts a sep parameter to alter what string is used to delimit the values. In python 3, only the print() function remains and the old print statement from python 2 has been removed.

Upvotes: 5

Ashwini Chaudhary
Ashwini Chaudhary

Reputation: 250931

You can import the print() function from __future__ and use sep='\t', print() function was introduced in python 3, and it replaced the print statement used in python 2.x:

In [1]: from __future__ import print_function

In [2]: print('a','b',sep='\t')
a   b

help on print():

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep:  string inserted between values, default a space.
end:  string appended after the last value, default a newline.

Upvotes: 6

Related Questions