Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Print without space in python 3

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.

like image 373
Blrp Avatar asked Oct 03 '12 00:10

Blrp


People also ask

How do I remove spaces when printing in Python?

Python String strip() function will remove leading and trailing whitespaces. If you want to remove only leading or trailing spaces, use lstrip() or rstrip() function instead.

How do I print a string without spaces?

Don't use print ..., (with a trailing comma) if you don't want spaces. Use string concatenation or formatting. The latter is far more flexible, see the str. format() method documentation and the Formatting String Syntax section.


2 Answers

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 
like image 123
DSM Avatar answered Sep 19 '22 17:09

DSM


The actual syntax of the print() function is

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) 

You can see it has an arg sep with default value ' '. That's why space gets inserted in between.

print("United","States")            #Output: United States print("United","States",sep="")     #Output: UnitedStates 
like image 45
Siva Prakash Avatar answered Sep 17 '22 17:09

Siva Prakash