python – How to print like printf in Python3?
python – 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(fa={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, 2
print(a={0},b={1}.format(a, b))
python – How to print like printf in Python3?
Simple printf() function from OReillys Python Cookbook.
import sys
def printf(format, *args):
sys.stdout.write(format % args)
Example output:
i = 7
pi = 3.14159265359
printf(hi there, i=%d, pi=%.2fn, i, pi)
# hi there, i=7, pi=3.14