Hebon
Hebon

Reputation: 195

How do I add space between two variables after a print in Python

I'm fairly new to Python, so I'm trying my hand at some simple code. However, in one of the practices my code is supposed to display some numbers in inches on the left and the conversion of the numbers on the right;

count = 1
conv = count * 2.54
print count, conv

I want the output to be printed with some space between them;

count = 1
conv = count * 2.54
print count,     conv

I can't figure out how to do this. I've searched everywhere, but all I can find are people trying to get rid of space. If someone could just lead me in the right direction, I'd be thankful.

Oh, and I just realized that I'm using Python 2.7, not 3.x. Not sure if this is important.

Upvotes: 8

Views: 202328

Answers (11)

Shravya Mutyapu
Shravya Mutyapu

Reputation: 318

You can do it this way in Python 3:

print(a, b, sep=" ")

Upvotes: 4

RomanG
RomanG

Reputation: 264

If you are trying only to print and not to store variables. You can use sep= parameter in print() function, as below:

print("string", "string", sep="something between them")
space_num = 10

count = 1
conv = count * 2.54
print(count, conv, sep=" "*space_num)

If you want to store values as one variable, so I think it will be best to use f string, as below:

space_num = 10

count = 1
conv = count * 2.54

result = f"{count}{' ' * space_num}{conv}"
print(result)

Upvotes: 1

Fring0.5
Fring0.5

Reputation: 3

print( "hello " +k+ "  " +ln);

where k and ln are variables

Upvotes: 0

Abbas Kagdi
Abbas Kagdi

Reputation: 11

A simple way to add the tab would be to use the \t tag.

print '{0} \t {1}'.format(count, conv)

Upvotes: 0

knittledan
knittledan

Reputation: 764

You should use python Explicit Conversion Flag PEP-3101

'My name is {0!s:10} {1}'.format('Dunkin', 'Donuts')

'My name is Dunkin Donuts'

or

'My name is %-10s %s' % ('Dunkin', 'Donuts')

'My name is Dunkin Donuts'

https://www.python.org/dev/peps/pep-3101/

Upvotes: 0

Daniel
Daniel

Reputation: 21

print str(count) + ' ' + str(conv) - This did not work. However, replacing + with , works for me

Upvotes: 0

Joseph Daniels
Joseph Daniels

Reputation: 31

A quick warning, this a pretty wordy answer.

print is tricky sometimes, I had some problems with it when I first started. What you want is a few spaces in between two variables after you print them right? There's many ways to do this, as shown in the above answers.

This is your code:

count = 1
conv = count * 2.54
print count, conv

It's output is this:

1 2.54

If you want spaces in between, you can do it the naive way by sticking a string of spaces in between them. The variables count and conv need to be converted to string types to concatenate(join) them together. This is done with str().

print (str(count) + "           " + str(conv))
### Provides an output of:
1           2.54

To do this is the newer, more pythonic way, we use the % sign in conjunction with a letter to denote the kind of value we're using. Here I use underscores instead of spaces to show how many there are. The modulo before the last values just tells python to insert the following values in, in the order we provided.

print ('%i____%s' % (count, conv))
### provides an output of:
1____2.54

I used %i for count because it is a whole number, and %s for conv, because using %i in that instance would provide us with "2" instead of "2.54" Technically, I could've used both %s, but it's all good.

I hope this helps!

-Joseph

P.S. if you want to get complicated with your formatting, you should look at prettyprint for large amounts of text such as dictionaries and tuple lists(imported as pprint) as well as which does automatic tabs, spacing and other cool junk.

Here's some more information about strings in the python docs. http://docs.python.org/library/string.html#module-string

Upvotes: 2

Gladius
Gladius

Reputation: 369

Alternatively you can use ljust/rjust to make the formatting nicer.

print "%s%s" % (str(count).rjust(10), conv)

or

print str(count).ljust(10), conv

Upvotes: 3

Cadoo
Cadoo

Reputation: 825

This is a stupid/hacky way

print count,    
print conv

Upvotes: 1

Óscar López
Óscar López

Reputation: 236170

A simple way would be:

print str(count) + '  ' + str(conv)

If you need more spaces, simply add them to the string:

print str(count) + '    ' + str(conv)

A fancier way, using the new syntax for string formatting:

print '{0}  {1}'.format(count, conv)

Or using the old syntax, limiting the number of decimals to two:

print '%d  %.2f' % (count, conv)

Upvotes: 14

Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams

Reputation: 799560

Use string interpolation instead.

print '%d   %f' % (count,conv)

Upvotes: 4

Related Questions