How can I print variable and string on same line in Python?

I am using python to work out how many children would be born in 5 years if a child was born every 7 seconds. The problem is on my last line. How do I get a variable to work when I'm printing text either side of it?

Here is my code:

currentPop = 312032486 oneYear = 365 hours = 24 minutes = 60 seconds = 60 # seconds in a single day secondsInDay = hours * minutes * seconds # seconds in a year secondsInYear = secondsInDay * oneYear fiveYears = secondsInYear * 5 #Seconds in 5 years print fiveYears # fiveYears in seconds, divided by 7 seconds births = fiveYears // 7 print "If there was a birth every 7 seconds, there would be: " births "births" 
1

17 Answers

Use , to separate strings and variables while printing:

print("If there was a birth every 7 seconds, there would be: ", births, "births") 

, in print function separates the items by a single space:

>>> print("foo", "bar", "spam") foo bar spam 

or better use string formatting:

print("If there was a birth every 7 seconds, there would be: {} births".format(births)) 

String formatting is much more powerful and allows you to do some other things as well, like padding, fill, alignment, width, set precision, etc.

>>> print("{:d} {:03d} {:>20f}".format(1, 2, 1.1)) 1 002 1.100000 ^^^ 0's padded to 2 

Demo:

>>> births = 4 >>> print("If there was a birth every 7 seconds, there would be: ", births, "births") If there was a birth every 7 seconds, there would be: 4 births # formatting >>> print("If there was a birth every 7 seconds, there would be: {} births".format(births)) If there was a birth every 7 seconds, there would be: 4 births 
0

Python is a very versatile language. You may print variables by different methods. I have listed below five methods. You may use them according to your convenience.

Example:

a = 1 b = 'ball' 

Method 1:

print('I have %d %s' % (a, b)) 

Method 2:

print('I have', a, b) 

Method 3:

print('I have {} {}'.format(a, b)) 

Method 4:

print('I have ' + str(a) + ' ' + b) 

Method 5:

print(f'I have {a} {b}') 

The output would be:

I have 1 ball 
1

Two more

The First one

>>> births = str(5) >>> print("there are " + births + " births.") there are 5 births. 

When adding strings, they concatenate.

The Second One

Also the format (Python 2.6 and newer) method of strings is probably the standard way:

>>> births = str(5) >>> >>> print("there are {} births.".format(births)) there are 5 births. 

This format method can be used with lists as well

>>> format_list = ['five', 'three'] >>> # * unpacks the list: >>> print("there are {} births and {} deaths".format(*format_list)) there are five births and three deaths 

or dictionaries

>>> format_dictionary = {'births': 'five', 'deaths': 'three'} >>> # ** unpacks the dictionary >>> print("there are {births} births, and {deaths} deaths".format(**format_dictionary)) there are five births, and three deaths 

If you want to work with python 3, it's very simple:

print("If there was a birth every 7 second, there would be %d births." % (births)) 

You can either use the f-string or .format() methods

Using f-string

print(f'If there was a birth every 7 seconds, there would be: {births} births') 

Using .format()

print("If there was a birth every 7 seconds, there would be: {births} births".format(births=births)) 

As of python 3.6 you can use Literal String Interpolation.

births = 5.25487 >>> print(f'If there was a birth every 7 seconds, there would be: {births:.2f} births') If there was a birth every 7 seconds, there would be: 5.25 births 
0

You can either use a formatstring:

print "There are %d births" % (births,) 

or in this simple case:

print "There are ", births, "births" 
1

If you are using python 3.6 or latest, f-string is the best and easy one

print(f"{your_varaible_name}") 

You would first make a variable: for example: D = 1. Then Do This but replace the string with whatever you want:

D = 1 print("Here is a number!:",D) 

On a current python version you have to use parenthesis, like so :

print ("If there was a birth every 7 seconds", X) 

You can use string formatting to do this:

print "If there was a birth every 7 seconds, there would be: %d births" % births 

or you can give print multiple arguments, and it will automatically separate them by a space:

print "If there was a birth every 7 seconds, there would be:", births, "births" 
2

use String formatting

print("If there was a birth every 7 seconds, there would be: {} births".format(births)) # Will replace "{}" with births 

if you doing a toy project use:

print('If there was a birth every 7 seconds, there would be:' births'births) 

or

print('If there was a birth every 7 seconds, there would be: %d births' %(births)) # Will replace %d with births 

I copied and pasted your script into a .py file. I ran it as-is with Python 2.7.10 and received the same syntax error. I also tried the script in Python 3.5 and received the following output:

File "print_strings_on_same_line.py", line 16 print fiveYears ^ SyntaxError: Missing parentheses in call to 'print' 

Then, I modified the last line where it prints the number of births as follows:

currentPop = 312032486 oneYear = 365 hours = 24 minutes = 60 seconds = 60 # seconds in a single day secondsInDay = hours * minutes * seconds # seconds in a year secondsInYear = secondsInDay * oneYear fiveYears = secondsInYear * 5 #Seconds in 5 years print fiveYears # fiveYears in seconds, divided by 7 seconds births = fiveYears // 7 print "If there was a birth every 7 seconds, there would be: " + str(births) + " births" 

The output was (Python 2.7.10):

157680000 If there was a birth every 7 seconds, there would be: 22525714 births 

I hope this helps.

Just use , (comma) in between.

See this code for better understanding:

# Weight converter pounds to kg weight_lbs = input("Enter your weight in pounds: ") weight_kg = 0.45 * int(weight_lbs) print("You are ", weight_kg, " kg") 

Slightly different: Using Python 3 and print several variables in the same line:

print("~~Create new DB:",argv[5],"; with user:",argv[3],"; and Password:",argv[4]," ~~") 

PYTHON 3

Better to use the format option

user_name=input("Enter your name : ) points = 10 print ("Hello, {} your point is {} : ".format(user_name,points) 

or declare the input as string and use

user_name=str(input("Enter your name : )) points = 10 print("Hello, "+user_name+" your point is " +str(points)) 
2

If you use a comma inbetween the strings and the variable, like this:

print "If there was a birth every 7 seconds, there would be: ", births, "births" 

You Might Also Like