欢迎来到山村网

python 2和python 3有什么区别?

2019-03-02 11:59:19浏览:729 来源:山村网   
核心摘要:  到这个题目大家可能猜到了我接下来要讲些什么,呵呵,对了,那就是列出这两个不同版本间的却别!  搜索一下大家就会知道,p

  到这个题目大家可能猜到了我接下来要讲些什么,呵呵,对了,那就是列出这两个不同版本间的却别!

  搜索一下大家就会知道,python有两个主要的版本,python2 和 python3 ,但是python又不同于其他语言,向下兼容,python3是不向下兼容的,但是绝大多数组件和扩展都是基于python2的,下面就来总结一下python2和python3的区别。

  1.性能

  Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可

  以取得很好的优化结果。

  Py3.1性能比Py2.5慢15%,还有很大的提升空间。

  2.编码

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

  >>> 中国 = 'china'

  >>>print(中国)

  china

  3. 语法

  1)去除了<>,全部改用!=

  2)去除``,全部改用repr()

  3)关键词加入as 和with,还有True,False,None

  4)整型除法返回浮点数,要得到整型结果,请使用//

  5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量

  6)去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数

  例如:

  2.X: print "The answer is", 2*2

  3.X: print("The answer is", 2*2)

  2.X: print x, # 使用逗号结尾禁止换行

  3.X: print(x, end=" ") # 使用空格代替换行

  2.X: print # 输出新行

  3.X: print() # 输出新行

  2.X: print >>sys.stderr, "fatal error"

  3.X: print("fatal error", file=sys.stderr)

  2.X: print (x, y) # 输出repr((x, y))

  3.X: print((x, y)) # 不同于print(x, y)!

  7)改变了顺序操作符的行为,例如x

  8)输入函数改变了,删除了raw_input,用input代替:

  2.X:guess = int(raw_input('Enter an integer : ')) # 读取键盘输入的方法

  3.X:guess = int(input('Enter an integer : '))

  9)去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了

  10)新式的8进制字变量,相应地修改了oct()函数。

  2.X的方式如下:

  >>> 0666

  438

  >>> oct(438)

  '0666'

  3.X这样:

  >>> 0666

  SyntaxError: invalid token (

  >>> 0o666

  438

  >>> oct(438)

  '0o666'

  11)增加了 2进制字面量和bin()函数

  >>> bin(438)

  '0b110110110'

  >>> _438 = '0b110110110'

  >>> _438

  '0b110110110'

  12)扩展的可迭代解包。在Py3.X 里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求两点:rest是list

  对象和seq是可迭代的。

  13)新的super(),可以不再给super()传参数,

  >>> class C(object):

  def __init__(self, a):

  print('C', a)

  >>> class D(C):

  def __init(self, a):

  super().__init__(a) # 无参数调用super()

  >>> D(8)

  C 8

  <__main__.D object at 0x00D7ED90>

(责任编辑:豆豆)
下一篇:

Redis的安装部署图文教程

上一篇:

WDS之部署服务器是什么?

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com