在
Django
和Numpy
相继发布对python2
的deadline后
Django不再支持python2
Numpy在2019不再支持python2
Guido van Rossum
给出明确回复
python2在2020将光荣退役
可以怀念,但请拥抱python3吧
这里小说
(粗浅,小范围)
下当前我个人碰到的和觉得常用的一些东西 在python2和python3中的差异
python2
是个 语句
python3
是个 函数
这样的话一些链式操作或是语句构建就成为可能
python2
中中国程序员困扰的编码问题,
python3
会明朗很多,默认Unicode
编码
python3
立减一行代码量
1# -*- coding: utf-8 -*-
你可以这样中文写码了
python2
相关方法 iterkeys/itervalues/iteritems
python3
中变成 keys/values/items
python3废除has_key
从
CPython 3.6+
开始默认情况下dict
的行为类似于OrderedDict
, 变成有序的了
python3只能这样写
1try:
2 print('ok')
3except (IOError, StandardError) as err_inform:
4 print('error')
异常对象
python2
返回的是 list
python3
返回的是 iterator
python2
range
返回 list
xrange
返回 Iterable
的对象
python3
只有 range
返回 Iterable
的对象
python2
返回 浮点数
python3
返回 整数或浮点数
python3 只能自己处理
1def unpacks(a, b):
2 return a,b[0],b[1]
3unpacks(1, (2,3))
4>(1, 2, 3)
还有其他很多差异,后续慢慢补充吧 还有一些标准库只是名字变更的 具体可以看看如下链接
http://python3porting.com/stdlib.html#removedmodules-section
当前这种情况下,视乎不存在争端和纠结了 对于还未接触过python的同学,建议不要理会python2了,直接拥抱python3 对于有经验的python2的同学,不是非python2不可,也建议拥抱python3吧
python官方也给出了很多使用python3的原因和从python2过度到python3有效的建议 具体请看如下链接 http://python3statement.org/