Question
Asked By – Mike L
In Python 2 I used:
print "a=%d,b=%d" % (f(x,n),g(x,n))
I’ve tried:
print("a=%d,b=%d") % (f(x,n),g(x,n))
Now we will see solution for issue: How to print like printf in Python3?
Answer
In Python2, print
was a keyword which introduced a statement:
print "Hi"
In Python3, print
is a function which may be invoked:
print ("Hi")
In both versions, %
is an operator which requires a string on the left-hand side and a value or a tuple of values or a mapping object (like dict
) on the right-hand side.
So, your line ought to look like this:
print("a=%d,b=%d" % (f(x,n),g(x,n)))
Also, the recommendation for Python3 and newer is to use {}
-style formatting instead of %
-style formatting:
print('a={:d}, b={:d}'.format(f(x,n),g(x,n)))
Python 3.6 introduces yet another string-formatting paradigm: f-strings.
print(f'a={f(x,n):d}, b={g(x,n):d}')
This question is answered By – Robᵩ
This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0