我是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块?
答案 0 :(得分:1)
SyntaxError
发生在代码运行之前,python将检查所有代码行并根据python解释器的版本查找语法问题,这在python2.x中不可行,这就是为什么该错误(由于尚未启动代码,因此尚未进入阻止状态)解决方案正在使用__future__
并导入print_function
。
答案 1 :(得分:0)
错误发生在编译时,而不是程序执行时。
编译器将尝试编译python 2中的两个if..else
块。
Python2的编译器不支持给定的print(x, end='')
语法。