-6

为什么当我运行这行代码时:

print ("syntax %(name,name,name)",sys.stderr)

我收到以下错误:

('syntax %(name,name,name)', <open file '<stderr>', mode 'w' at 0x01CE60D0>)
4

2 回答 2

5

那不是错误。

当你这样做时sys.stderr,你正在打印它的表示,即<open file '<stderr>', mode 'w' at blah>. 我不熟悉该sys模块,所以我不确定你该做什么。然而,这里有一个关于它的文档的链接。

于 2013-10-17T08:00:31.150 回答
1

您似乎使用的是 Python 2.x。在这里,print是一个语句,您正在将一个元组打印到stdout.

你可以实现你想要的

print >> sys.stderr, "syntax %(name,name,name)"

但是这个字符串对我来说似乎很奇怪,尤其是那%(name,name,name)部分。但是,由于您没有告诉我们您真正想要打印什么,所以只能这样做。

如果你想print()作为一个函数使用,无论是在 Python 3.x 中还是在 using 之后from __future__ import print_function,你都应该遵循以下语法print()

print("syntax %(name,name,name)", file=sys.stderr)

另一个问题似乎是您正在打印的字符串:

"syntax %(name,name,name)"

类似于我的字符串格式,您省略了参数使用了错误的语法。

所以,看你想做什么,

"syntax %(name)s%(name)s%(name)s" % some_dict_having_name_as_a_key

可能是你想要的。

于 2013-10-17T08:47:19.147 回答