每当我尝试使用sys.stderr时语法错误

时间:2014-12-14 17:52:19

标签: python-3.x

我在使用标准错误时出现问题,每当我尝试使用它时,我的计算机都会出现语法错误,我无法解释。

所以这是我的代码:

import sys

def main(argv):
if len(argv) != 3:
    print("Usage: python walk.py n l", file=sys.stderr)
else:
    l = argv[2]
    n = argv[1]
    print("You ended up", simuleer(n,l), "positions from the starting point.")



if __name__ == "__main__":
main(sys.argv)

这是我的错误

MacBook-Air-van-Luuk:documents luuk$ python walk.py 5 1 2
File "walk.py", line 21
print("Usage: python walk.py n l", file=sys.stderr)    
                                       ^

我希望有人可以解释为什么会发生这种情况,提前谢谢!

2 个答案:

答案 0 :(得分:15)

您认为自己使用的是Python 3.x,但它实际上是Python 2.x.在大多数系统python上,可执行文件意味着Python 2.x。

print不是Python 2.x中的函数,不能像这样使用,导致语法错误。

你应该寻找一些运行Python 3.x的方法。

对于这种特殊情况,您还可以使用from __future__ import print_function,这将使代码与这两个版本兼容。

答案 1 :(得分:-3)

有办法解决它

只需删除" file ="来自打印方法

e.g:

print("用法:python walk.py n l",sys.stderr)