How to print like printf in Python3?
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}')
The most recommended way to do is to use format
method. Read more about it here
a, b = 1, 2print("a={0},b={1}".format(a, b))
Simple printf() function from O'Reilly's Python Cookbook.
import sysdef printf(format, *args): sys.stdout.write(format % args)
Example output:
i = 7pi = 3.14159265359printf("hi there, i=%d, pi=%.2f\n", i, pi)# hi there, i=7, pi=3.14