【发布时间】:2019-05-06 21:11:52
【问题描述】:
我是 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,结束='') SyntaxError: 无效语法
如果我在 Python2 中运行此代码,它会在 else 部分出现错误。为什么会进入else块?
【问题讨论】:
-
错误表示它无效语法;当 Python 尝试 parse 代码而不是在执行代码时,这是失败的。对于语法更改,请使用
__future__导入(在本例中为print_function)。 -
@jonrsharpe 是的,我知道,但是为什么即使我使用的是 Python2.x,它也会进入 else 块?
-
它不是进入
else块;同样,这是在 解析 时间,而不是执行。 Python 必须先解析整个脚本才能运行它。 -
那么,没有办法在 Python 中运行特定于版本的代码吗?就像如果我想在设置 Python2.x 的情况下使用带有“end=”的打印,就像在 if else 块中一样?
-
您能完整阅读我的第一条评论吗?附带说明:您使用的方法适用于特定于版本的功能只要它在所有版本中的语法有效。
标签: python python-3.x python-2.x