I'm new to Python, and I'm wondering how to print multiple values without having the extra space added in between. I want the output ab
rather than a b
without having to call print
twice:
print("a", end="")
print("b")
Also, I have the following code:
a = 42
b = 84
and I want to print their values as a = 42, b = 84
, yet if I do
print("a = ", a, ", ", b = ", b)
extra spaces are added (it outputs a = 42 , b = 84
)
Whereas the Java style,
print("a = " + a + ", b = " + b)
raises a TypeError
.
You can use the sep
parameter to get rid of the spaces:
>>> print("a","b","c")
a b c
>>> print("a","b","c",sep="")
abc
I don't know what you mean by "Java style"; in Python you can't add strings to (say) integers that way, although if a
and b
are strings it'll work. You have several other options, of course:
>>> print("a = ", a, ", b = ", b, sep="")
a = 2, b = 3
>>> print("a = " + str(a) + ", b = " + str(b))
a = 2, b = 3
>>> print("a = {}, b = {}".format(a,b))
a = 2, b = 3
>>> print(f"a = {a}, b = {b}")
a = 2, b = 3
The last one requires Python 3.6 or later. For earlier versions, you can simulate the same effect (although I don't recommend this in general, it comes in handy sometimes and there's no point pretending otherwise):
>>> print("a = {a}, b = {b}".format(**locals()))
a = 2, b = 3
>>> print("b = {b}, a = {a}".format(**locals()))
b = 3, a = 2
You can also use
print("%d%d" %(a,b))
to print a and b not seperated by spaces in form of a formatted string. This is similar to the one in c.
On this page the answer is to print your normal text and at the end to use
sep=""
.
So the command
print("Hole", hole, "Par", par, sep="")
will give
"Hole1Par4"
assuming that hole==1
and par==4
.