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

Luu*_*nga 9 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)
Run Code Online (Sandbox Code Playgroud)

这是我的错误

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)    
                                       ^
Run Code Online (Sandbox Code Playgroud)

我希望有人能解释我为什么会这样,提前谢谢!

Ole*_*pin 15

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

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

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

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

  • 你好,我的笔记本电脑上有 2 个 python 版本 2.7 和 3.7,我有同样的问题,我在 ~/.bashrc 中添加了 `alias python=python3` 所以我的 python 版本是 3 而不是 2 我也可以使用 python 检查 -版本但仍然出现问题,为什么? (2认同)