在 Python 2 中,我使用了:
print "a=%d,b=%d" % (f(x,n),g(x,n))
我试过了:
print("a=%d,b=%d") % (f(x,n),g(x,n))
在 Python 2 中,我使用了:
print "a=%d,b=%d" % (f(x,n),g(x,n))
我试过了:
print("a=%d,b=%d") % (f(x,n),g(x,n))
在 Python2 中,print
是一个关键字,它引入了一个语句:
print "Hi"
在 Python3 中,print
是一个可以调用的函数:
print ("Hi")
在这两个版本中,%
是一个运算符,它需要左侧的字符串和右侧的值或值的元组或映射对象(如dict
)。
所以,你的行应该是这样的:
print("a=%d,b=%d" % (f(x,n),g(x,n)))
此外,对于 Python3 和更新版本的建议是使用{}
-style 格式而不是%
-style 格式:
print('a={:d}, b={:d}'.format(f(x,n),g(x,n)))
Python 3.6 引入了另一种字符串格式化范例:f-strings。
print(f'a={f(x,n):d}, b={g(x,n):d}')
最推荐的方法是使用format
方法。在此处阅读有关它的更多信息
a, b = 1, 2
print("a={0},b={1}".format(a, b))
来自O'Reilly 的 Python Cookbook 的简单 printf() 函数。
import sys
def printf(format, *args):
sys.stdout.write(format % args)
示例输出:
i = 7
pi = 3.14159265359
printf("hi there, i=%d, pi=%.2f\n", i, pi)
# hi there, i=7, pi=3.14
简单示例:
print("foo %d, bar %d" % (1,2))
一个更简单的。
def printf(format, *values):
print(format % values )
然后:
printf("Hello, this is my name %s and my age %d", "Martin", 20)
因为您%
在print(...)
括号之外,所以您试图将变量插入到调用结果中print
。print(...)
返回None
,所以这不起作用,还有一个小问题,你已经打印了你的模板,时间旅行被我们居住的宇宙法则所禁止。
您要打印的整个内容,包括 the%
及其操作数,都需要在您的print(...)
调用中,以便可以在打印之前构建字符串。
print( "a=%d,b=%d" % (f(x,n), g(x,n)) )
我添加了一些额外的空格以使其更清晰(尽管它们不是必需的,并且通常不被认为是好的样式)。
print("Name={}, balance={}".format(var-name, var-balance))