Python3.x和Python2.x的区别

侃侃无极
浏览 967回答 1
1回答

哔哔one

Python的3.0版本,常被称为Python&nbsp;3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python&nbsp;3.0在设计的时候没有考虑向下相容。 许多针对早期Python版本设计的程式都无法在Python&nbsp;3.0上正常执行。 为了照顾现有程式,Python&nbsp;2.6作为一个过渡版本,基本使用了Python&nbsp;2.x的语法和库,同时考虑了向Python&nbsp;3.0的迁移,允许使用部分Python&nbsp;3.0的语法与函数。 新的Python程式建议使用Python&nbsp;3.0版本的语法。 除非执行环境无法安装Python&nbsp;3.0或者程式本身使用了不支援Python&nbsp;3.0的第三方库。目前不支援Python&nbsp;3.0的第三方库有Twisted,&nbsp;py2exe,&nbsp;PIL等。 大多数第三方库都正在努力地相容Python&nbsp;3.0版本。即使无法立即使用Python&nbsp;3.0,也建议编写相容Python&nbsp;3.0版本的程式,然后使用Python&nbsp;2.6,&nbsp;Python&nbsp;2.7来执行。 Python&nbsp;3.0的变化主要在以下几个方面: 1.print语句没有了,取而代之的是print()函数 2.在&nbsp;Python&nbsp;3,我们最终有了&nbsp;Unicode&nbsp;(utf-8)&nbsp;字符串,以及一个字节类:byte&nbsp;和&nbsp;bytearrays。 3.除法运算对于整数之间的相除,结果也会是浮点数。 4.在&nbsp;Python&nbsp;3&nbsp;中处理异常也轻微的改变了,在&nbsp;Python&nbsp;3&nbsp;中我们现在使用&nbsp;as&nbsp;作为关键词。捕获异常的语法由&nbsp;except&nbsp;exc,&nbsp;var&nbsp;改为&nbsp; except&nbsp;exc&nbsp;as&nbsp;var。使用语法except&nbsp;(exc1,&nbsp;exc2)&nbsp;as&nbsp;var可以同时捕获多种类别的异常。&nbsp;Python&nbsp;2.6已经支持这两种语法。 5.range()&nbsp;是像&nbsp;xrange()&nbsp;那样实现以至于一个专门的&nbsp;xrange()&nbsp;函数都不再存在(在&nbsp;Python&nbsp;3&nbsp;中&nbsp;xrange()&nbsp;会抛出命名异常)。 6.&nbsp;必须写成0o777,原来的形式0777不能用了;二进制必须写成0b111。新增了一个bin()函数用于将一个整数转换成二进制字串 7.Python&nbsp;3.x中去掉了<>,&nbsp;只有!=一种写法, 8.Python&nbsp;3.x&nbsp;中去掉了``这种写法,只允许使用repr函数 9.多个模块被改名 旧的名字&nbsp; 新的名字 _winreg&nbsp; winreg ConfigParser&nbsp; configparser copy_reg&nbsp; copyreg Queue&nbsp; queue SocketServer&nbsp; socketserver repr&nbsp; reprlib 10.&nbsp;1)Py3.X去除了long类型,现在只有一种整型——int,但它的行为就像2.X版本的long 2)新增了bytes类型,对应于2.X版本的八位串,定义一个bytes字面量的方法 3)dict的.keys()、.items&nbsp;和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有&nbsp;dict.has_key(),用&nbsp;in替代它吧&nbsp;。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python