Print without space in python 3

printing, python

Solution

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

Problem

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`.

Original source

Related problems