当前位置:首页 » 编程语言 » python各版本区别

python各版本区别

发布时间: 2022-12-30 23:27:33

A. python的这几个版本区别

系统区别:

1、Download Windows X86 可供电脑系统32位使用。

2、Download Windows X86-64 可供电脑系统64位使用。

版本区别:

1、Download Windows X86 web-based installer 是通过需要联网完成安装的文件。

2、Download Windows X86 executable installer 是可执行的安装文件,下载后,双击安装即可。

3、Download Windows X86 embeddable zip file 是可嵌入式的压缩包文件,可以集成到其他应用中。

(1)python各版本区别扩展阅读:

Python2与Python3的选择:

因为早期的 Python版本在基础方面设计存在着一些不足之处。2008 年的时候 Guido van Rossum 又重新开发 Python 3.0(被称为Python 3000,或简称Py3k),Python3在设计的时候很好地解决了这些遗留问题, 并且在性能上也有了一定的提升,。

然而 Python3 带来的最大的问题就是不完全向后兼容,当时向后兼容的版本是Python2.6。Python开发团队无法一下子就让所有项目和类库都转到 Python3.0 上面。

所以,两个版本就进入了长期并行开发和维护的状态。但是就更新速度来说 ,Python3更新速度远快于Python2的速度,因为Python2目前主要以维护为主。Python3是未来的趋势。

B. python3和python2差别为什么那么大

python2和python3的区别
如果你是一个初学者,或者你以前接触过其他的编程语言,你可能不知道,在开始学习python的时候都会遇到一个比较让人很头疼的问题:版本问题!!是学习python2 还是学习 python3 ?这是非常让人纠结的!
搜索一下便会发现python3 和 python2 是不兼容的,而且差异比较大,到底学习哪个版本呢?下面就来为大家分析一下:

其实python是linux上最常用的软件之一,但是linux目前的版本大部分还是使用python2的,而且,在linux上依赖python2的程序更多一些,所以 Python3 要代替 python2 成为主流还需要几年的时间。

当初设计 Python3 的目的是没有代码兼容的包袱的情况下改进 Python,但个人认为改进得还不够大刀阔斧,没有彻底改进一些bug,还有不少的 wart 错过了改进机会,因此造成的语法不兼容的地方也没最初设想的多。

人们几年摸索慢慢下来,大部分的情况下可以直接写 2/3 兼容的代码,也有 six 这类的兼容层可用。

所以先学 Python2 还是 Python3 都不是问题,或者说都是问题。
目前现状是实际应用中大部分暂不考虑 Python3,有的时候注意写兼容 2/3 的代码。用 Python2 为主的写新代码时要考虑以后迁移到 Python3 的可能性。

论学 Python2 还是 Python3,都需要注意另外一边的不同点:所幸就是这些不同点很容易掌握,只有一个 unicode encoding
对较多人造成困扰(同时也是很多 web 相关库移植的主要障碍,3.3 重新支持 u'',情况大大改善了)学习python2 还是
python3 、使用python2 还是 python3 需要看具体情况而定.

所以我建议:
1. 如果是你在企业中,需要用到python而学习python的话,那就要看企业的应用python的版本进行学习;
2. 如果想要更多的成熟解决方案,最少的bug,最稳定的应用那就用python2 ;
3. 如果你是在读大学的学生,那我建议你学习python3,等到毕业的时候或许python已经成为了主流。

C. python2和python有什么区别

很多初学者刚开始学python的时候,一定都遇到过这个问题,python的世界有2个版本,python2 和 python3 ,而且有些语法还不兼容.怎么办~~到底应该选择哪个版本来开发呢?好,今天我们就来聊聊这个话题.

1.Python2和Python3的历史背景
Python语言是在20世纪90年代诞生的,算算到现在已经是25岁的大叔级的语言了(跟它同一个时代的还有一个鼎鼎大名的java是在1995发行的, 红了几十年).
但是Python真正成名比java晚了很多年,其实也主要是应用领域的时代变迁.(猜测为啥,对了大数据的出现)

Python2是Python里面一个非常重要的版本,最早的版本是从2001的时候开始的,特别是从2006年开始py2.5的发布,python的功能逐渐强大起来,慢慢开始稳定下来,并且差不多1-2年左右递增一个版本,在08年左右开始慢慢的火起来了.

而Python3最早是从2008开始发布,但是py3.0的版本非常不稳定,所以社区更新的很快,差不多几个月就更新一次。所以一开始的时候并没有很多人用,只到2014春暖花开的时候python3.4 deliver了才开始慢慢稳定下来.

下面我们看一个数据,这是Python社区联和一些网站在2014做的一个调查,关于Python2/3,部分的结果如下:
1).97.51%用户还在写Python2的代码
2).60%的用户写Python3的代码
3).78.09%的用户更多地写Python2代码
4).77.09%的用户认可Python3

目前有一些Linux里的操作系统已经默认使用Python3:
1).Arch Linux (轻量级的Linux操作系统)
2).Ubuntu 16.04 (一个桌面应用为主的Linux操作系统)
3).Fedora(Redhat桌面版本的延续)

2.Python2和Python3的主要区别:
目前最新的数据是,Python有两个版本:一个是2.7.12版,一个是3.5.12版.

那么Python2运行的好好的,为啥突然要出个Python3呢,其实是为了解决Python2里面一些历史问题
第一个是字符串的问题:
Python 2 中文本和二进制数据是一个烂摊子,Python中的str 是代表二进制数据还是文本数据是有二义性,文字既能代表文本数据又能代表二进制数据这很麻烦,此类错误发生的时候,我们很难意识到。

第二个是对Unicode的支持
由于python是在1991年2月开源发布,这意味着它早于在1991年10月发布的第一版 Unicode 标准。在接下来几年中,晚于 Unicode 标准出现的语言都选择在支持 Unicode 编码的基础上实现自己的 str 类型,这让 Python 2 处于尴尬的境地。
目前是一个python2/3共存的时代,这两个版本是不兼容的。
python2现在只是做bug的修复,新硬件和操作系统兼容的相关维护工作。不会再有新的功能加入,python2只支持到2020年.
现在Python正在朝着3版本进化,在进化过程中,大量的针对2.x版本的代码要修改后才能运行,所以目前有许多第三方库还暂时无法在3.x上使用。

不过可以畅想一下,也许再过几年情况就会好很多,毕竟全世界有很多优秀的程序员正在把一些库从Py2往Py3上迁移.

3.选择还是要根据自己的需求
若是企业的开发,要满足工作的需求,尤其是依赖的软件只能运行在Python2下,首选Python2.比如你的开发需要依赖大量的第三方的库(因为学Python非常大的一个原因就是因为它有成千上万的第三方包),像大量的数据分析,科学计算,还是选Python2吧.

如果你是自己学习,研究的话,愿意拥抱变化,那么建议学Python3,因为它是未来的方向.

结论:
编程其实主要是对编程思想的理解和经验的积累,千万不要因为纠结学Py2还是Py3而浪费大量时间。

Py2和Py3里面的思想基本是相通的,招式是类似的.当你熟悉Python到一定的程序的时候,会Py2的人学Py3只需要很短的时间。

所以不要再纠结细枝末节的语法差异,而耽误了宝贵的学习时间。

好了Python2和Python3的恩怨情仇就讲到这里啦(它们还要相爱相杀一段时间),希望能给初学者一些启发,若有什么不懂的,也可以留言跟我探讨交流.

最后说一下,原创不易,希望大家能够给点支持,欢迎转发,留言,也是对我的一点鼓励和动力.

D. python版本有什么不同

对比python2和python3,两者的差异如下:

1. Python3 对 Unicode 字符的原生支持。

Python2 中使用 ASCII 码作为默认编码方式导致 string 有两种类型 str 和 unicode,Python3 只

支持 unicode 的 string。Python2 和 Python3 字节和字符对应关系为:

2. Python3 采用的是绝对路径的方式进行 import

Python2 中相对路径的 import 会导致标准库导入变得困难(想象一下,同一目录下有 file.py,如

何同时导入这个文件和标准库 file)。Python3 中这一点将被修改,如果还需要导入同一目录的文件必

须使用绝对路径,否则只能使用相关导入的方式来进行导入。

推荐学习《python教程》

3. Python2 中存在老式类和新式类的区别,Python3 统一采用新式类。新式类声明要求继承 object,

必须用新式类应用多重继承。

4. Python3 使用更加严格的缩进。Python2 的缩进机制中,1 个 tab 和 8 个 space 是等价的,所

以在缩进中可以同时允许 tab 和 space 在代码中共存。这种等价机制会导致部分 IDE 使用存在问题。

Python3 中 1 个 tab 只能找另外一个 tab 替代,因此 tab 和 space 共存会导致报错:TabError:

inconsistent use of tabs and spaces in indentation.

废弃类差异

1. print 语句被 Python3 废弃,统一使用 print 函数

2. exec 语句被 python3 废弃,统一使用 exec 函数

3. execfile 语句被 Python3 废弃,推荐使用 exec(open("./filename").read())

4. 不相等操作符"<>"被 Python3 废弃,统一使用"!="

5. long 整数类型被 Python3 废弃,统一使用 int

6. xrange 函数被 Python3 废弃,统一使用 range,Python3 中 range 的机制也进行修改并提高

了大数据集生成效率

7. Python3 中这些方法再不再返回 list 对象:dictionary 关联的 keys()、values()、items(),zip(),

map(),filter(),但是可以通过 list 强行转换:

1. mydict={"a":1,"b":2,"c":3}

2. mydict.keys() #<built-in method keys of dict object at 0x000000000040B4C8>

3. list(mydict.keys()) #['a', 'c', 'b']

8. 迭代器 iterator 的 next()函数被 Python3 废弃,统一使用 next(iterator)

9. raw_input 函数被 Python3 废弃,统一使用 input 函数

10. 字典变量的 has_key 函数被 Python 废弃,统一使用 in 关键词

11. file 函数被 Python3 废弃,统一使用 open 来处理文件,可以通过 io.IOBase 检查文件类型

12. apply 函数被 Python3 废弃

13. 异常 StandardError 被 Python3 废弃,统一使用 Exception

修改类差异

1. 浮点数除法操作符“/”和“//”的区别

“ / ”:

Python2:若为两个整形数进行运算,结果为整形,但若两个数中有一个为浮点数,则结果为

浮点数;

Python3:为真除法,运算结果不再根据参加运算的数的类型。

“//”:

Python2:返回小于除法运算结果的最大整数;从类型上讲,与"/"运算符返回类型逻辑一致。

Python3:和 Python2 运算结果一样。

2. 异常抛出和捕捉机制区别

Python2

1. raise IOError, "file error" #抛出异常

2. except NameError, err: #捕捉异常

Python3

1. raise IOError("file error") #抛出异常

2. except NameError as err: #捕捉异常

3. for 循环中变量值区别

Python2,for 循环会修改外部相同名称变量的值

1. i = 1

2. print ('comprehension: ', [i for i in range(5)])

3. print ('after: i =', i ) #i=4

Python3,for 循环不会修改外部相同名称变量的值

1. i = 1

2. print ('comprehension: ', [i for i in range(5)])

3. print ('after: i =', i ) #i=1

E. python3.6和2.7的区别是什么

python2.7和python3.6常用区别

*** python2.7版本只支持到2020年1月1日 ,建议新学习者安装python3版本。

终端输入区别

Python2.7:

(1)input() 可以自动判断其类型,即输入什么类型的数据,就是什么类型,没有引号的英文字符会被判断为变量,会在全文中找对应的变量。如果str类型必须加单引号或者双引号,不然类型不对,报错。

(2)raw_input() 输入所有数据都按照str类型处理,如果是整形输入,使用时要str转int,用(int)强制转换。

Python3.6:

(1)input() 输入所有数据都按照str类型处理,如果是整形输入,使用时要str转int,用(int)强制转换。

(2)raw_input() 不再使用。

相关推荐:《Python视频教程》

print区别

Python2.7:print 为class ,后面直接跟打印数值。

Python3.6:print() 为函数,打印数值必须用括号括起来。

编码区别

Python2.7:默认ASCII处理字符(字符串以8-bit存储),因此使用汉字前加# -*- coding:utf-8 -*- 。

Python3.6:全部用的是Unicode(万国码、统一码固定2字节,字符串以16-bit 存储)字符集,utf-8(可动态变化1-6字节,en:1byte zh:3bytes) 是对Unicode的压缩和优化,因此支持中文。

真除、整除区别

Python2.7:带上小数点/表示真除,%表示取余,//表示地板除(结果取整)。

Python3.6:表示真除,%表示取余,//表示地板除(结果取整)。

range、xrange区别

Python2.7:range()生成一个列表,xrange()生成一个生成器。

Python3.6:list( range(0,4) )列表,range()生成一个生成器,xrange()不再使用。

打开文件区别

Python2.7:file()、open()都可打开文件。

Python3.6:file()不再使用,只用open()打开文件。

F. python3.7和3.7.2之间的差别

他们之间没有很大的区别的。不是很清楚你需要知道什么。如果你想了解,可以到官网了解新特性。python2和python3之间有很大的语法差异。小版本迭代区别很小。python3版本据“龟叔”将在未来1-2年内会对python的运行服务做一次提升大概是2左右吧

G. 详解python2 和 python3的区别

Python2.x与3.x版本区别

Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。

为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。

许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。

为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。

新的Python程式建议使用Python 3.0版本的语法。

除非执行环境无法安装Python 3.0或者程式本身使用了不支援Python 3.0的第三方库。目前不支援Python 3.0的第三方库有Twisted, py2exe, PIL等。

大多数第三方库都正在努力地相容Python 3.0版本。即使无法立即使用Python 3.0,也建议编写相容Python 3.0版本的程式,然后使用Python 2.6, Python 2.7来执行。

Python 3.0的变化主要在以下几个方面:

1. print 函数

print语句没有了,取而代之的是print()函数。 Python 2.6与Python 2.7部分地支持这种形式的print语法。在Python 2.6与Python 2.7里面,以下三种形式是等价的:

print"fish"
print("fish")#注意print后面有个空格
print("fish")#print()不能带有任何其它参数

然而,Python 2.6实际已经支持新的print()语法:

from__future__importprint_function
print("fish","panda",sep=',')

2.Unicode

Python 2 有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型。

现在, 在 Python 3,我们最终有了 Unicode (utf-8) 字符串,以及一个字节类:byte 和 bytearrays。

由于 Python3.X 源码文件默认使用utf-8编码,这就使得以下代码是合法的:

>>>中国='china'
>>>print(中国)
china

Python 2.x

>>>str="我爱北京天安门"
>>>str
''
>>>str=u"我爱北京天安门"
>>>str
u''

Python 3.x

>>>str="我爱北京天安门"
>>>str
'我爱北京天安门'

3. 除法运算

Python中的除法较其它语言显得非常高端,有套很复杂的规则。Python中的除法有两个运算符,/和//

3.1首先来说/除法:

在python 2.x中/除法就跟我们熟悉的大多数语言,比如Java啊C啊差不多,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的结果。

在python 3.x中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。

Python 2.x:

>>>1/2
0
>>>1.0/2.0
0.5

Python 3.x :

>>>1/2
0.5

而对于//除法,这种除法叫做floor除法,会对除法的结果自动进行一个floor操作,在python 2.x和python 3.x中是一致的。

python 2.x :

>>>-1//2
-1

python 3.x :

>>>-1//2
-1

注意的是并不是舍弃小数部分,而是执行floor操作,如果要截取小数部分,那么需要使用math模块的trunc函数

python 3.x :

>>>importmath
>>>math.trunc(1/2)
0
>>>math.trunc(-1/2)
0

4. 异常

在 Python 3 中处理异常也轻微的改变了,在 Python 3 中我们现在使用 as 作为关键词。

捕获异常的语法由except exc, var改为except exc as var

使用语法except (exc1, exc2) as var可以同时捕获多种类别的异常。 Python 2.6已经支持这两种语法。

  • 1. 在2.x时代,所有类型的对象都是可以被直接抛出的,在3.x时代,只有继承自BaseException的对象才可以被抛出。

  • 2. 2.x raise语句使用逗号将抛出对象类型和参数分开,3.x取消了这种奇葩的写法,直接调用构造函数抛出对象即可。


在2.x时代,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情,在3.x中可以看出,设计者让异常变的更加专一,只有在错误发生的情况才能去用异常捕获语句来处理。

5. xrange

在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典推导式。

这个表现十分像生成器(比如。"惰性求值")。但是这个 xrange-iterable 是无穷的,意味着你可以无限遍历。

由于它的惰性求值,如果你不得仅仅不遍历它一次,xrange() 函数 比 range() 更快(比如 for 循环)。尽管如此,对比迭代一次,不建议你重复迭代多次,因为生成器每次都从头开始。

Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange() 会抛出命名异常)。

Python 3

importtimeit
n=10000
deftest_range(n):
returnforiinrange(n):
pass
deftest_xrange(n):
foriinxrange(n):
pass

Python 2

print'Python',python_version()
print' timingrange()'
%timeittest_range(n)
print' timingxrange()'
%timeittest_xrange(n)
Python2.7.6
timingrange()
1000loops,bestof3:433µsperloop
timingxrange()1000loops,bestof3:350µsperloop
Python2.7.6
timingrange()
1000loops,bestof3:433µsperloop
timingxrange()
1000loops,bestof3:350µsperloop

Python 3

print('Python',python_version())
print(' timingrange()')
%timeittest_range(n)
Python3.4.1
timingrange()
1000loops,bestof3:520µsperloop
print(xrange(10))
---------------------------------------------------------------------------
NameErrorTraceback(mostrecentcalllast)
<ipython-input-5-5d8f9b79ea70>in<mole>()
---->1print(xrange(10))
NameError:name'xrange'isnotdefined

6. 八进制字面量表示

八进制数必须写成0o777,原来的形式0777不能用了;二进制必须写成0b111。

新增了一个bin()函数用于将一个整数转换成二进制字串。 Python 2.6已经支持这两种语法。

在Python 3.x中,表示八进制字面量的方式只有一种,就是0o1000。

python 2.x

>>>0o1000
512
>>>01000
512

python 3.x

>>>01000
File"<stdin>",line1
01000
^
SyntaxError:invalidtoken
>>>0o1000
512

7.不等运算符

Python 2.x中不等于有两种写法 != 和 <>

Python 3.x中去掉了<>, 只有!=一种写法,还好,我从来没有使用<>的习惯

8. 去掉了repr表达式``

Python 2.x 中反引号``相当于repr函数的作用

Python 3.x 中去掉了``这种写法,只允许使用repr函数,这样做的目的是为了使代码看上去更清晰么?不过我感觉用repr的机会很少,一般只在debug的时候才用,多数时候还是用str函数来用字符串描述对象。

defsendMail(from_:str,to:str,title:str,body:str)->bool:
pass

多个模块被改名(根据PEP8)

>>>s=b.decode()
>>>s
'china'
>>>b1=s.encode()
>>>b1
b'china'

3)dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有 dict.has_key(),用 in替代它吧 。

H. python2和3的区别大吗

1、Python2之前是非常受欢迎的,现在很多软件公司依然使用的是Python2,不过由于越来越多的公司开始从Python2迁移到3,因此初学者可以避免花费更多的时间学习过去的版本了。
2、Python2和Python3之间有一些是无法互相兼容的,现在很多开发人员都在使用Python3开发库,许多老的基于Python2的开发包依然是无法兼容的,想要将Python2库移植到Python3上,对于初学者来说还是比较困难的事情。
3、Python3有更好的Unicode编码支持在Python3的语法之中,默认文化字符串就是Unicode,而Python2默认的存储为ASCII,而且Unicode比ASCII更加通用,可以提供更多的选择。
4、Python3版本改进了整数除法的问题,在Python2中如果你在小数点后面写任何一个数字,计算会自动四舍五入的。而使用Python3的情况下是不需要担心这种情况发生的。
5、两个版本之间有不同的打印语句声明语法,是语法差异,不影响Python的功能。

I. python用哪个版本好呢

可以使用python3.9的版本。

Python 提供了高效的高级数据结构,以及简单有效的面向对象编程。 Python 语法和动态类型,以及解释型语言的性质,使其成为在大多数平台上编写脚本和快速应用程序开发的编程语言。 随着版本的不断更新和新语言特性的加入,逐渐被用于独立的、大规模的应用。 项目发展。

python的优势

1、库丰富:Python标准库确实庞大。 它可以帮助您处理各种任务,包括正则表达式、文档生成、单元测试、线程、数据库、Web 浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV 文件、密码系统、GUI(图形用户 Interface)、Tk 等系统相关操作。

2、标准代码:Python使用强制缩进,使代码可读性极强。

3、可扩展性和可嵌入性。 如果您需要一段关键代码以更快地运行或希望某些算法不被公开,您可以用 C 或 C++ 编写您的部分程序,然后在您的 Python 程序中使用它们。

热点内容
如何更改笔记本电脑密码方式 发布:2025-07-02 11:34:07 浏览:50
安卓平板不知道怎么选 发布:2025-07-02 11:33:22 浏览:14
qq空间怎么设密码 发布:2025-07-02 11:30:29 浏览:717
跑跑卡丁车如何更改服务器 发布:2025-07-02 11:27:35 浏览:298
我的世界112服务器存档 发布:2025-07-02 11:25:02 浏览:946
php类函数调用 发布:2025-07-02 11:24:27 浏览:25
redhat存储 发布:2025-07-02 11:12:50 浏览:585
优酷不能用流量缓存 发布:2025-07-02 11:10:46 浏览:941
彩虹岛小草怎么设置脚本 发布:2025-07-02 11:10:33 浏览:922
越压缩越封闭 发布:2025-07-02 11:09:10 浏览:90