【问题标题】:Syntax error whenever i try to use sys.stderr每当我尝试使用 sys.stderr 时出现语法错误
【发布时间】:2017-09-13 14:20:59
【问题描述】:

我在使用标准错误时遇到了问题,每当我尝试使用它时,我的计算机都会给我一个无法解释的语法错误。

这是我的代码:

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)    
                                       ^

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

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

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

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

    您应该寻找一些方法来运行 Python 3.x。

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

    【讨论】:

    • 好吧,你可以这样使用它,但这不是有效的元组语法。
    【解决方案2】:

    有办法解决它

    只需从打印方法中删除“file=”

    例如:

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

    【讨论】:

    • 这不会达到他的预期,它会打印('Usage: python walk.py n l', <open file '<stderr>', mode 'w' at 0xb74ce0d0>)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    相关资源
    最近更新 更多