运行 python 中的版本特定代码给我错误

Running version specific code in python gives me error

我是 Python 语言的新手。我看到一个关于如何在 python 脚本中 运行 版本特定代码的 Whosebug 问题。我写了以下代码:

import sys

mylist = []
mylist.append(1)
mylist.append(2)
mylist.append(3)

str=""

if sys.version_info[0] == 2:
    print("version 2\n")
    for x in mylist:
        str += "{}".format(x)
    print(str)
else:
    print("version 3 or above\n")
    for x in mylist:
        print(x, end='')
    print()

但是这段代码给我一个错误如下 -

File "test.py", line 18 print(x, end='') SyntaxError: invalid syntax

如果我 运行 Python2 中的这段代码,它会在 else 部分给出错误。为什么要进入else块?

错误是在编译时,而不是在程序执行时。 编译器将尝试编译 python 2 中的两个 if..else 块。 Python2 的编译器不支持给定的 print(x, end='') 语法。

SyntaxError 在您的代码运行之前发生,python 将检查代码的所有行并根据 python 解释器的版本查找语法问题,这是不对的在 python2.x 中,这就是为什么会出现该错误(未进入块,因为您的代码尚未开始)解决方案是使用 __future__ 并导入 print_function.