Python 之 Python2 和 Python3 的区别

1、默认编码方式

# Python2 默认编码方式是 ascll码
# Python3 默认编码方式是 utf-8

# Python2 输出中文要加  # -*- encoding:utf-8 -*-
# Python3 不需要

2、print

# Python2 可以使用 print,也可以使用 print()  例: print('lili') 或 print 'lili'
# Python3 只能使用 print()                                例: print('lili')

3、input

# Python2 中是 raw_input 
# Python3 中是 input

4、除法

# Python2 不会,如:5/2=2
# Python3 会取余 如:5/2=2.5

5、内涵

# Python2  1,臃肿,源码的重复量很多  2,语法不清晰,掺杂着C,php,Java,的一些陋习。
# Python3  几乎是重构后的源码,规范,清晰,优美。

6、函数

# Python3 中的函数都是新式类
# Python2 中的函数 新式类和经典类共存

新式类都继承自object,且super(),和mro()只存在于新式类,只要继承自object,都是新式类

在多继承问题中:

1、新式类遵循广度优先,即 A 和 E 能同时到达F ,则走完A之后走C ,即  D  -> B  -> A -> C  -> E  -> F

super的本质 :不是单纯找父类 而是根据调用者的节点位置的广度优先顺序来的,即和广度优先正好相逆 F  -> E  -> C  -> A  -> B  -> D

2、经典问题遵循深度优先 ,一条路走到头,即 D  -> B  -> A  -> F  -> C  -> E

7、其他

'True和False':
    py2中是两个全局变量(1和0)可以重新赋值;
    py3中为两个关键字,不可重新赋值

'迭代':
    py2:xrange、range 
    py3:统一使用range,并且range的机制也进行修改并提高了大数据集生成效率

'Nonlocal':
    py3专有的(声明为非局部变量)

'yield':
    py2:yield
    py3:yield/yield from

'文件操作':
    py2:readliens()读取文件的所有行,返回一个列表,包含所有行的结束符
         xreadliens()返回一个生成器,循环取值
    py3: 只有readlines()

指定字节
    python2在编译安装时,可以通过参数-----enable-unicode=ucs2 或-----enable-unicode=ucs4分别用于指定使用2个字节、4个字节表示一个unicode;
    python3无法进行选择,默认使用 ucs4

查看当前python中表示unicode字符串时占用的空间:
impor sys
print(sys.maxunicode)
# 如果值是65535,则表示使用usc2标准,即:2个字节表示
# 如果值是1114111,则表示使用usc4标准,即:4个字节表示

包结构:
     py2:必须有__init__
   py3:不是必须的了

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

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

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

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

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

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

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值