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

时间:2018-12-05 10:17:20

标签: python python-3.x python-2.x

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

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

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

  

文件“ test.py”,第18行       打印(x,end ='')   SyntaxError:语法无效

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

2 个答案:

答案 0 :(得分:1)

SyntaxError发生在代码运行之前,python将检查所有代码行并根据python解释器的版本查找语法问题,这在python2.x中不可行,这就是为什么该错误(由于尚未启动代码,因此尚未进入阻止状态)解决方案正在使用__future__并导入print_function

答案 1 :(得分:0)

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