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" 117 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 0Python 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 1Two 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 0You can either use a formatstring:
print "There are %d births" % (births,) or in this simple case:
print "There are ", births, "births" 1If 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" 2print("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)) 2If 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"