Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python3和python2兼容性选择_Python_Python 2.7_Python 3.x - Fatal编程技术网

python3和python2兼容性选择

python3和python2兼容性选择,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我没有理解为什么Python3有与Python2不兼容的命令 例如,命令 打印“你好” 在Python2中工作,而在Python3中不工作。为什么? 我希望Python3与Python2兼容,就像C#4与C#2兼容一样。因为在Python2中,print是一条语句。但现在是Python 3中的一个函数。但是,print(…)在Python2中仍然是有效的语法,您也可以从uuu future\uuuuu导入print\u函数中执行,以在Python2中获得Python3的print函数 不要期望p

我没有理解为什么Python3有与Python2不兼容的命令

例如,命令

打印“你好”

在Python2中工作,而在Python3中不工作。为什么?


我希望Python3与Python2兼容,就像C#4与C#2兼容一样。

因为在Python2中,
print
是一条语句。但现在是Python 3中的一个函数。但是,
print(…)
在Python2中仍然是有效的语法,您也可以从uuu future\uuuuu导入print\u函数中执行
,以在Python2中获得Python3的print函数

不要期望python 3与2;兼容。例如,
reduce()
被删除,大多数内置函数现在返回曾经返回列表的生成器(例如
map()
zip()
,和
filter()

我没有理解为什么Python3的命令与Python2不兼容

因为Python3与Python2的语言不同

Python版本通常与以前的版本向后兼容;Python2.7在很大程度上向后兼容Python2.6

然而,从一开始,Python3(或其设计项目最初的代号为3000)就明显不同。引述自:

python3000将对Python引入一些向后不兼容的更改,主要是为了简化语言并消除一些以前的设计错误。)

因此,Python3不向后兼容,无法纠正语言中无法通过向后兼容更改纠正的特定错误

使用语句来编写stdout而不是函数就是这些变化之一<代码>打印
已被函数
print()
替换

不同的语言和软件项目对其版本号的含义使用不同的标准。Python坚持主次微方案;同一个主版本号内的版本在很大程度上是向后兼容的,同一个次版本号内的版本只包含错误修复。见:

Python版本编号为
A.B.C
A.B
A
是主要版本号–仅当语言发生重大变化时才递增
B
是次要版本号,为减少惊天动地的变化而递增
C
是微级别–对于每个错误修复版本,它都是递增的。有关错误修复版本的更多信息,请参阅

Python也比C#老了一点。Python开发始于1989年,2.0版于2000年问世。另一方面,C#从2002年才出现;也许再过十年左右,它也会看到一个向后不兼容的变化。

python3有一个名为“2to3”的工具。此工具将帮助您将python2.x源代码转换为python3.x源代码。
阅读手册

为什么希望Python 3与Python 2兼容?所有Python2.x系列发行版都是兼容的,但Python3.x是一个主要的版本更改,与2.x不兼容。在3.x版本中是兼容的。主要版本号的更改是因为语言以不兼容的方式更改。我希望兼容,因为我来自C#世界,对我来说,在同一个程序中使用C#2.0(代理)功能和C#4.0(动态)是正常的。例如,我希望python3同时接受print'hello'和print'hello',但这可能与语言的理念不兼容(?)。如果您要开始新的工作,请始终使用python3。@SantoshKumar不一定。并非所有模块都与Python3兼容这并不能回答为什么Python3与Python2不兼容。:-)@MartijnPieters真的没有答案。必须问问GVR自己:这里有一个答案;我很快就会把它寄出去。社区提供了这方面的信息。虽然这是真的。。。它没有回答为什么Python3的某些更改不向后兼容的问题……同时,列出了将
print
更改为函数的五个具体原因。