为什么python有两个不同的版本,并且语法规范什么的都不相通呢?

Python032

为什么python有两个不同的版本,并且语法规范什么的都不相通呢?,第1张

Python有两个主要版本——Python 2和Python 3。这两个版本有一些重要的区别,尽管它们都是Python语言。Python 2最初于2000年发布,Python 3最初于2008年发布。

Python 2和Python 3的主要区别在于Python 3改进了许多Python 2的语言特性,并且不兼容Python 2。这意味着,如果你在Python 2中编写的代码,在Python 3中可能无法正常运行。反之亦然。这就是为什么Python有两个版本的原因,因为Python 3是Python 2的改进版本,但它们之间存在不兼容性。

尽管Python 3改进了许多Python 2的特性,但它们之间的语法规范仍然不相同。例如,在Python 2中,在打印语句中,必须使用括号包围打印的内容,如下所示:

print "Hello, World!"

在Python 3中,打印语句不需要括号,如下所示:

print("Hello, World!")

因此,Python 3与Python 2之间的语法差异就是这个区别的一个例子。这些差异使得Python 2和Python 3之间的代码不兼容,因此出现了两个不同的版本。

可能是系统不兼容导致的。

如果打不开或者闪退,可以尝试选择打开方式,选择Python应用程序或者文本编译器看看是否能够打开文件。先尝试了双击,未打开,接着选择打开方式pthon,还是失败。然后选择了平时的文本编译器Geany,成功打开了命名为commentpy的python文件。

data = Data 这句改成data = Data.copy() 就可以了。

修改:加上import copy

然后 data = Data 这句改成data = copy.deepcopy(Data)

非常抱歉,第一次看的时候没注意到是两层的list

具体原因的话是默认情况下python对list dict 以及用类创建的对象的复制并不是复制它们所有的数据,依我从C++过来的感觉,只是复制了指向数据的指针。

例如:a = 1

b = a

b += 1 #a不会被修改

但是 a = [1, 2, 3]

b = a

b[0] = 4 #会把a也给修改

所以我第一次提议用Data.copy()来复制完整的列表,但是没注意到列表有两层,这样只能复制外层。所以要换成深拷贝。

我并没有仔细学过python语法,很多是通过C++理解的,可能讲不太清楚。忘记在哪里看到过相关讲解了。